@font-face {
  font-family: "Source Han Sans SC";
  src: url("/assets/fonts/SourceHanSansSC-Normal-ui.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Source Han Sans SC";
  src: url("/assets/fonts/SourceHanSansSC-Bold-ui.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
:root {
  --bg: #15131f;
  --bg-2: #1d1a2b;
  --bg-3: #26223a;
  --panel: #1a1726;
  --line: #352f4a;
  --text: #f4eaff;
  --text-2: #b8aed0;
  --text-3: #7d7295;
  --accent: #ff7eb3;
  --accent-soft: rgba(255, 126, 179, 0.14);
  --accent-2: #7c3aed;
  --warn: #ffb454;
  --danger: #ff6b9d;
  --ok: #5eead4;
  --radius: 18px;
  --radius-lg: 26px;
  --shadow: 0 14px 44px rgba(10,6,20,.5);
  --font-normal: "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-cute: "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --font-round: "Source Han Sans SC", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  --grad-accent: linear-gradient(135deg, #ff8fc7 0%, #7c3aed 100%);
  --grad-soft: linear-gradient(135deg, #ff8fc7 0%, #8b5cf6 100%);
}* { box-sizing: border-box; }button, select, input, textarea { outline: none; font-family: inherit; }button:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 2px; }html, body {
  margin: 0; height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-normal);
  
  font-size: 18px;
  overflow: hidden;
}.hidden { display: none !important; }em { font-style: normal; color: var(--text-3); font-size: 15px; }.topbar {
  height: 58px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 20px; background: var(--bg-2); border-bottom: 1px solid var(--line);
  position: relative; z-index: 1000;
}.brand { display: flex; align-items: center; gap: 10px; cursor: pointer; user-select: none; transition: opacity .15s; }.brand:hover { opacity: .85; }.brand:active { transform: translateY(1px); }.logo-img { height: 40px; width: auto; display: block; transition: transform .2s cubic-bezier(.34,1.56,.64,1); }.logo-img:hover { transform: scale(1.06) rotate(-2deg); }.logo-text-img { height: 22px; width: auto; display: block; margin-left: 8px; }.logo { color: var(--accent); font-size: 26px; }.brand-name { font-weight: 700; letter-spacing: .5px; font-size: 19px; }.brand-name em { color: var(--text-3); font-weight: 400; margin-left: 2px; font-size: 15px; }.brand-tag { font-size: 15px; color: var(--text-3); border: 1px solid var(--line); padding: 2px 8px; border-radius: 8px; margin-left: 6px; }.brand-slogan { font-family: var(--font-cute); font-size: 15px; color: #fff; white-space: nowrap;
  display: inline-flex; align-items: center; gap: 5px;
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);
  padding: 5px 12px; border-radius: 999px; margin-left: 10px;
  box-shadow: 0 3px 12px rgba(124,58,237,.28), inset 0 1px 0 rgba(255,255,255,.25);
  text-shadow: 0 1px 0 rgba(0,0,0,.08); animation: slogan-float 4s ease-in-out infinite; }@keyframes slogan-float {0%,100% {transform:translateY(0)}50% {transform:translateY(-2px)} }.topbar-right { display: flex; align-items: center; gap: 14px; }.presence { display: flex; gap: -6px; }.presence .p-avatar {
  width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; color: #fff; border: 2px solid var(--bg-2); margin-left: -6px; font-weight: 600;
}.user-chip { display: flex; align-items: center; gap: 8px; background: var(--bg-3); padding: 4px 10px; border-radius: 20px; font-size: 16px; }.avatar { width: 28px; height: 28px; border-radius: 50%; background: var(--accent); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 600; }.mini-btn { background: transparent; border: 1px solid var(--line); color: #fff; border-radius: 6px; min-width: 28px; height: 28px; padding: 0 10px; cursor: pointer; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; transition: border-color .15s, color .15s; }.mini-btn:hover { border-color: var(--accent); color: #fff; }.mini-btn.danger { border-color: var(--danger); color: #fff; }.mini-btn.danger:hover { background: rgba(239,68,68,.08); }.mini-btn-icon { background: transparent; border: 1px solid var(--line); color: #fff; border-radius: 50%; width: 28px; height: 28px; cursor: pointer; font-size: 16px; padding: 0; display: inline-flex; align-items: center; justify-content: center; transition: border-color .15s, color .15s; }.mini-btn-icon:hover { border-color: var(--accent); color: #fff; }.mini-btn-icon.danger { border-color: var(--danger); color: #fff; }.mini-btn-icon.danger:hover { background: rgba(239,68,68,.08); }.primary-btn, .ghost-btn, .mini-btn, .mini-btn-icon, .q-rename-btn, .bp-card-btn, .action-btn, .side-admin-btn { white-space: nowrap; word-break: keep-all; }.admin-table th, .admin-table td, .member-table th, .member-table td, .boss-table th, .boss-table td, .media-table th, .media-table td, .file-find-table th, .file-find-table td { word-break: keep-all; }#doTrafficRecent .admin-table th:nth-child(1),
#doTrafficRecent .admin-table td:nth-child(1),
#doTrafficRecent .admin-table th:nth-child(4),
#doTrafficRecent .admin-table td:nth-child(4) { white-space: nowrap; }#doTrafficRecent .admin-table th:nth-child(1),
#doTrafficRecent .admin-table td:nth-child(1) { width: 168px; }#doTrafficRecent .admin-table th:nth-child(4),
#doTrafficRecent .admin-table td:nth-child(4) { width: 96px; text-align: right; }.nowrap, .status-cell, .tag-badge, .version-badge, .m-badge, .m-role, .m-dept, .mc-badge, .ai-risk-badge, .up-cust-badge { white-space: nowrap; word-break: keep-all; }.layout { display: flex; height: calc(100% - 58px); }.sidebar { width: 280px; background: var(--bg-2); border-right: 1px solid var(--line); display: flex; flex-direction: column; transition: width .18s ease; position: relative; font-size: 15px; }.sidebar-resizer {
  position: absolute;
  top: 0; right: -3px;
  width: 6px; height: 100%;
  cursor: col-resize;
  z-index: 20;
  background: transparent;
}.sidebar-resizer::after {
  content: "";
  position: absolute;
  top: 50%; right: 2px;
  transform: translateY(-50%);
  width: 2px; height: 36px;
  border-radius: 2px;
  background: var(--line);
  transition: background .15s;
}.sidebar-resizer:hover::after,
body.resizing-sidebar .sidebar-resizer::after { background: var(--accent); }body.resizing-sidebar { cursor: col-resize; user-select: none; }.layout.sidebar-collapsed .sidebar-resizer { display: none; }@media (max-width: 720px) {.sidebar-resizer { display: none; } }.sidebar-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; font-weight: 600; border-bottom: 1px solid var(--line); font-size: 15px; cursor: pointer; user-select: none; transition: background .15s; }.sidebar-head:hover { background: rgba(255,255,255,0.04); }.sidebar-head:hover .sidebar-home { color: var(--accent); }.sidebar-home { transition: color .15s; }.sidebar-head-actions { display: flex; align-items: center; gap: 6px; }.sidebar-expand-btn { display: none; width: 32px; height: 32px; align-items: center; justify-content: center; border-radius: 8px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); font-size: 16px; cursor: pointer; }.sidebar-expand-btn:hover { border-color: var(--accent); color: var(--accent); }.project-list { flex: 1; overflow-y: auto; padding: 10px; }.layout.sidebar-collapsed .sidebar { width: 44px; min-width: 44px; overflow: hidden; cursor: pointer; }.layout.sidebar-collapsed .sidebar-head,
.layout.sidebar-collapsed .hub-btn,
.layout.sidebar-collapsed .project-list,
.layout.sidebar-collapsed .sidebar-foot { display: none; }.layout.sidebar-collapsed .sidebar-expand-btn { display: flex; flex: 1; width: 44px; margin: 0; border-radius: 0; border: none; border-right: 1px solid var(--line); background: var(--bg-2); font-size: 20px; }.sidebar-sizebar { display: flex; gap: 6px; padding: 8px 14px; border-bottom: 1px solid var(--line); align-items: center; }.sb-size { flex: 0 0 34px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text-2); border-radius: 6px; padding: 4px; font-size: 16px; cursor: pointer; transition: .12s; }.sb-size:hover { border-color: var(--accent); color: #fff; }.sb-size:disabled { opacity: .35; cursor: not-allowed; border-color: var(--line); color: var(--text-3); }.sb-zoom-label { flex: 1; text-align: center; font-size: 15px; color: var(--text-2); }.layout.sidebar-collapsed .sidebar-sizebar { display: none; }.proj-card { position: relative; background: var(--bg-3); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; margin-bottom: 8px; cursor: pointer; transition: .15s; }.proj-card:hover { border-color: var(--accent); }.proj-card.active { border-color: var(--accent); background: #1b2740; }.proj-card .pc-row { display: flex; align-items: center; gap: 10px; }.proj-card .pc-logo { width: 40px; height: 40px; border-radius: 10px; background: center/cover no-repeat; flex: 0 0 40px; display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.25); }.proj-card .pc-main { flex: 1; min-width: 0; }.proj-card .pc-name { font-weight: 600; display: flex; align-items: center; gap: 6px; font-size: 15px; line-height: 1.3; }.proj-card .pc-name .pc-star { color: #ffe066; font-size: 15px; }.proj-card .pc-meta { color: var(--text-3); font-size: 15px; margin-top: 4px; display: flex; gap: 8px; flex-wrap: wrap; }.proj-card .pc-ddl { position: absolute; top: 7px; right: 7px; width: 8px; height: 8px; border-radius: 50%; background: #ff3b30; box-shadow: 0 0 0 2px var(--bg-3); z-index: 1; }.proj-card .pc-tooltip { position: absolute; left: 50%; bottom: 100%; transform: translateX(-50%); margin-bottom: 6px; background: rgba(20,16,30,.95); border: 1px solid var(--line); color: #fff; font-size: 15px; padding: 6px 10px; border-radius: 8px; white-space: nowrap; opacity: 0; pointer-events: none; transition: opacity .15s; z-index: 10; }.proj-card:hover .pc-tooltip { opacity: 1; }.proj-card.size-zoom-0 { padding: 4px 6px; margin-bottom: 6px; }.proj-card.size-zoom-0 .pc-logo { width: 22px; height: 22px; border-radius: 6px; font-size: 15px; }.proj-card.size-zoom-0 .pc-name { font-size: 15px; }.proj-card.size-zoom-0 .pc-meta { display: flex; font-size: 15px; }.proj-card.size-zoom-0 .pc-ddl { top: 3px; right: 3px; width: 6px; height: 6px; }.proj-card.size-zoom-1 { padding: 6px 8px; margin-bottom: 7px; }.proj-card.size-zoom-1 .pc-logo { width: 30px; height: 30px; border-radius: 8px; font-size: 15px; }.proj-card.size-zoom-1 .pc-name { font-size: 15px; }.proj-card.size-zoom-1 .pc-meta { display: flex; font-size: 15px; }.proj-card.size-zoom-1 .pc-ddl { top: 4px; right: 4px; width: 7px; height: 7px; }.proj-card.size-zoom-2 { padding: 10px 12px; margin-bottom: 8px; }.proj-card.size-zoom-2 .pc-logo { width: 40px; height: 40px; border-radius: 10px; font-size: 15px; }.proj-card.size-zoom-2 .pc-name { font-size: 15px; }.proj-card.size-zoom-3 { padding: 12px 14px; margin-bottom: 10px; }.proj-card.size-zoom-3 .pc-logo { width: 48px; height: 48px; border-radius: 12px; font-size: 17px; }.proj-card.size-zoom-3 .pc-name { font-size: 16px; }.proj-card.size-zoom-4 { padding: 14px 16px; margin-bottom: 12px; }.proj-card.size-zoom-4 .pc-logo { width: 56px; height: 56px; border-radius: 14px; font-size: 19px; }.proj-card.size-zoom-4 .pc-name { font-size: 17px; }.proj-card.size-zoom-4 .pc-meta { font-size: 15px; }.proj-card.size-large .pc-name { font-size: 16px; }.home-card { background: rgba(79,124,255,0.10); border-color: rgba(79,124,255,0.25); }.home-card.active { background: rgba(79,124,255,0.20); border-color: var(--accent); }.home-card .pc-icon { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; font-size: 17px; flex: 0 0 auto; }.media-row { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-radius: 8px; cursor: pointer; margin-top: 5px; }.media-row:hover { background: var(--bg); }.media-row.active { background: #23344f; }.media-row .mr-thumb { width: 40px; height: 26px; border-radius: 4px; background: linear-gradient(135deg,#2a3340,#3a4658); display:flex; align-items:center; justify-content:center; font-size: 15px; color: var(--text-3); }.media-row .mr-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; }.media-row .mr-v { font-size: 15px; color: var(--text-3); }.main { flex: 1; overflow: hidden; display: flex; flex-direction: column; position: relative; }.empty-state { margin: auto; text-align: center; color: var(--text-2); }.empty-ill { font-size: 65px; }.empty-state h2 { color: var(--text); margin: 14px 0 8px; font-size: 24px; }.empty-state p { max-width: 400px; margin: 0 auto 20px; line-height: 1.6; font-size: 17px; }.primary-btn { background: var(--accent); color: #fff; border: none; padding: 11px 22px; border-radius: 8px; cursor: pointer; font-weight: 500; font-size: 16px; }.primary-btn:hover { filter: brightness(1.1); }#cibSend { padding: 8px 16px; font-size: 15px; }.ghost-btn { background: var(--bg-3); color: #fff; border: 1px solid var(--line); padding: 8px 14px; border-radius: 8px; cursor: pointer; font-size: 16px; }.ghost-btn:hover { border-color: var(--accent); color: #fff; }.review-view { display: flex; flex-direction: column; height: 100%; position: relative; z-index: 0; }.review-view::before {
  content: ''; position: absolute; inset: 0;
  background: url('/assets/bg/project.webp') no-repeat center bottom;
  background-size: cover;
  pointer-events: none; z-index: -2;
}.review-view::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(21,19,31,0.88) 0%, rgba(21,19,31,0.55) 50%, rgba(21,19,31,0.30) 100%);
  pointer-events: none; z-index: -1;
}.review-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 20px; border-bottom: 1px solid var(--line); }.rh-left { display: flex; align-items: center; gap: 14px; }.rh-left h2 { margin: 0; font-size: 20px; }.version-badge { background: var(--accent); color: #fff; font-size: 15px; padding: 4px 12px; border-radius: 999px; font-weight: 600; cursor: pointer; border: none; white-space: nowrap; }.version-badge:hover { filter: brightness(1.1); }.version-select-wrap { position: relative; flex-shrink: 0; }.version-dropdown { position: absolute; top: calc(100% + 6px); left: 0; width: max-content; min-width: 420px; max-width: min(560px, calc(100vw - 40px)); max-height: 360px; overflow-y: auto; background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 8px; z-index: 200; box-shadow: var(--shadow); }.version-dropdown .ver-item { display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 8px; cursor: pointer; font-size: 15px; }.version-dropdown .ver-item:hover { background: var(--bg-3); }.version-dropdown .ver-item.active { background: var(--accent-soft); color: var(--accent); }.version-dropdown .ver-item.locked { color: var(--ok); }.version-dropdown .ver-main { display: flex; align-items: center; justify-content: flex-start; gap: 10px; flex: 1; min-width: 0; }.version-dropdown .ver-version { font-weight: 600; white-space: nowrap; }.version-dropdown .ver-time { font-size: 15px; color: var(--text-2); white-space: nowrap; }.version-dropdown .ver-lock { margin-left: 4px; }.version-dropdown .ver-actions { display:flex; align-items:center; gap:6px; flex:0 0 auto; }.version-dropdown .ver-delete,.version-dropdown .ver-detach { background: transparent; border: 1px solid var(--line); color: var(--text-2); border-radius: 6px; padding: 3px 9px; font-size: 15px; cursor: pointer; white-space:nowrap; }.version-dropdown .ver-detach:hover { background:rgba(123,97,255,.15);color:#b8a9ff;border-color:rgba(159,127,255,.55); }.version-dropdown .ver-delete:hover { background: rgba(255,107,157,.16); color: var(--danger); border-color: rgba(255,107,157,.45); }.version-dropdown .ver-reorder { display: block; width: 100%; margin-top: 6px; padding: 6px 10px; border-radius: 8px; border: 1px dashed var(--line); background: transparent; color: var(--text-2); font-size: 15px; cursor: pointer; text-align: center; }.version-dropdown .ver-reorder:hover { background: var(--bg-3); color: var(--text); }.rh-right { display: flex; align-items: center; gap: 12px; }.status-select { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--text-2); }select { background: var(--bg-3); color: var(--text); border: 1px solid var(--line); border-radius: 6px; padding: 6px 10px; font-size: 16px; }#annotateBtn, #visSelect, #linkBtn { display: none; }.review-body { display: flex; flex: 1; min-height: 0; position: relative; --side-w: 380px; }.review-stage { display: flex; flex-direction: column; flex: 1 1 0; min-width: 320px; overflow: hidden; position: relative; }.review-back-float { position: absolute; top: 12px; left: 12px; z-index: 9; display: none; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 8px; background: rgba(18,26,38,.85); color: var(--text); border: 1px solid var(--line); cursor: pointer; font-size: 16px; backdrop-filter: blur(4px); }.review-back-float:hover { border-color: var(--accent); color: var(--accent); }.review-view.collapsed-head .review-back-float { display: flex; }.review-side { width: 340px; flex: 0 0 340px; border-left: 1px solid var(--line); background: var(--bg-2); display: flex; flex-direction: column; }.review-divider { flex: 0 0 6px; cursor: col-resize; background: transparent; position: relative; z-index: 6; }.review-divider::before { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--line); transform: translateX(-50%); }.review-divider:hover::before, .review-divider.dragging::before { background: var(--accent); width: 2px; }.review-divider::after { content: ""; position: absolute; left: 50%; top: 50%; width: 3px; height: 34px; border-radius: 3px; background: var(--text-3); transform: translate(-50%, -50%); opacity: 0; transition: opacity .15s; }.review-divider:hover::after, .review-divider.dragging::after { opacity: .8; }.rv-edge { display: none; align-items: center; justify-content: center; gap: 10px; font-size: 15px; color: var(--text-2); background: var(--bg-2); border: 1px dashed var(--line); cursor: pointer; user-select: none; }.rv-edge:hover { color: var(--accent); border-color: var(--accent); background: #1b2740; }.edge-btn { background: var(--bg-3); border: 1px solid var(--line); color: inherit; font-size: 20px; cursor: pointer; line-height: 1; border-radius: 8px; padding: 4px 12px; min-width: 42px; }.edge-btn:hover { border-color: var(--accent); color: var(--accent); background: #23344f; }.rv-head-edge { height: 36px; border-top: none; gap: 12px; width: 100%; position: relative; }.rv-head-edge .edge-hint { font-size: 15px; letter-spacing: .3px; }.rv-head-edge .all-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 15px; padding: 4px 10px; min-width: 0; white-space: nowrap; }.rv-head-edge:hover { color: var(--accent); border-color: var(--accent); background: #1b2740; }.review-view.collapsed-head .review-head { display: none; }.review-view.collapsed-head .rv-head-edge { display: flex; }.rh-left { flex: 1; min-width: 0; }.rh-left > * { flex-shrink: 0; }.rh-left h2 { max-width: 180px; overflow: hidden; text-overflow: ellipsis; }.cp-filter-toggle { font-size: 15px; }.cp-filters { display: flex; gap: 10px; width: 100%; flex-wrap: wrap; }.cp-filters.collapsed { display: none; }.comments-panel.review-side .cp-head { flex-wrap: wrap; gap: 8px; padding: 8px 16px; align-items: center; }.comments-panel.review-side .cp-head > span { flex-shrink: 0; }.comments-panel.review-side .cp-filters { margin-top: 4px; margin-left: 0; gap: 6px; }.comments-panel.review-side .cp-filters.collapsed { display: none; }.comments-panel.review-side .cp-filters select,
.comments-panel.review-side .cp-filters input { height: 30px; padding: 3px 8px; }.comments-panel.review-side .cp-filters .search-input { height: 30px; }.comments-panel.review-side .cp-filters .ghost-btn.sm { height: 30px; padding: 0 10px; }.rv-bottom-edge {
  display: none;
  
  flex: 0 0 36px;
  min-height: 36px;
  width: 100%;
  align-self: stretch;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 15px;
  color: var(--text-2);
  background: var(--bg-2);
  border-top: 1px dashed var(--line);
  cursor: pointer;
  pointer-events: auto;
  user-select: none;
}.review-view.collapsed-bottom .comment-input-bar,
.review-view.collapsed-bottom .video-wave-track,
.review-view.collapsed-bottom .timeline-bar,
.review-view.collapsed-bottom .controls,
.review-view.collapsed-bottom .guide-panel { display: none !important; }.review-view.collapsed-bottom .rv-bottom-edge { display: flex !important; }.rv-side-edge { flex-direction: column; width: 44px; flex: 0 0 44px; border-left: 1px solid var(--line); padding: 8px 0; gap: 6px; }.rv-side-edge .edge-btn { width: 100%; min-width: 0; padding: 6px 0; font-size: 18px; }.review-view.collapsed-side .comments-panel,
.review-view.collapsed-side .review-divider { display: none; }.review-view.collapsed-side .rv-side-edge { display: flex; }.rv-toggle { font-size: 18px; padding: 7px 16px; border-radius: 8px; background: var(--bg-3); border: 1px solid var(--line); }.rv-toggle:hover { border-color: var(--accent); color: var(--accent); background: #23344f; }.comment-input-bar { display: flex; align-items: center; gap: 10px; padding: 10px 16px; background: var(--bg-2); border-top: 1px solid var(--line); flex-wrap: wrap; row-gap: 8px; }.comment-input-bar .avatar { width: 32px; height: 32px; font-size: 15px; flex-shrink: 0; }.cib-tools { display: flex; gap: 6px; flex-shrink: 0; }.cib-tools .tool-btn { width: 32px; height: 32px; font-size: 17px; }.comment-input-bar #cibSend { height: 44px; padding: 0 22px; font-size: 17px; display: inline-flex; align-items: center; justify-content: center; }.cib-tools .tool-btn.active { border-color: var(--accent); background: #23344f; color: var(--accent); }.cib-input { flex: 1 1 280px; min-width: 180px; max-width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 10px 12px; font-size: 16px; outline: none; }.cib-input:focus { border-color: var(--accent); }.cib-vis, .cib-priority, .cib-time { flex-shrink: 0; }.mention-popup { position: absolute; bottom: 100%; left: 12px; margin-bottom: 8px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 24px rgba(0,0,0,.35); max-height: 320px; overflow-y: auto; z-index: 60; min-width: 260px; padding: 4px; }.mention-popup.hidden { display: none; }.mention-popup .mp-section {
  padding: 6px 10px 4px;
  font-size: 15px;
  color: var(--text-3);
  letter-spacing: .4px;
  text-transform: uppercase;
  border-top: 1px solid rgba(255,255,255,.05);
}.mention-popup .mp-section:first-child { border-top: none; padding-top: 4px; }.mention-popup .mp-item { padding: 7px 10px; display: flex; align-items: center; gap: 8px; cursor: pointer; border-radius: 7px; }.mention-popup .mp-item:hover, .mention-popup .mp-item.active { background: var(--bg-3); }.mention-popup .mp-avatar { width: 26px; height: 26px; border-radius: 50%; font-size: 15px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: #fff; background-size: cover; background-position: center; }.mention-popup .mp-name { font-size: 15px; color: var(--text); flex-shrink: 0; }.mention-popup .mp-meta { font-size: 15px; color: var(--text-3); margin-left: auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.mention-popup .mp-file-icon {
  width: 26px; height: 26px; border-radius: 6px; flex-shrink: 0; display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  background: linear-gradient(135deg, rgba(255,126,179,.18), rgba(124,58,237,.18));
  border: 1px solid rgba(255,126,179,.30);
}.mention-popup .mp-item.type-file.active { background: linear-gradient(90deg, rgba(255,126,179,.16), rgba(124,58,237,.16)); }.mention-popup .mp-item.type-member.active { background: var(--bg-3); }.mention-popup .mp-empty { padding: 10px; color: var(--text-3); font-size: 15px; }.mention-popup .mp-tabs { display: flex; gap: 4px; padding: 4px; border-bottom: 1px solid rgba(255,255,255,.07); margin-bottom: 4px; }.mention-popup .mp-tab {
  flex: 1;
  padding: 7px 10px;
  border-radius: 7px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  font-size: 15px;
  color: var(--text-2);
  background: transparent;
  border: 1px solid transparent;
  transition: background .15s, color .15s;
}.mention-popup .mp-tab:hover { background: var(--bg-3); color: var(--text); }.mention-popup .mp-tab.active { background: linear-gradient(135deg, rgba(255,126,179,.20), rgba(124,58,237,.20)); color: #fff; border-color: rgba(255,126,179,.35); }.mention-popup .mp-tab .mp-tab-count { font-size: 15px; padding: 1px 6px; border-radius: 999px; background: rgba(255,255,255,.10); color: var(--text-2); }.mention-popup .mp-tab.active .mp-tab-count { background: rgba(255,255,255,.22); color: #fff; }.mention-popup .mp-tab.disabled { opacity: 0.35; cursor: not-allowed; }.ci-text .mention-file {
  display: inline-block;
  padding: 0 6px;
  margin: 0 1px;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(34,197,94,.18), rgba(16,185,129,.18));
  color: #4ade80;
  border: 1px solid rgba(34,197,94,.35);
  font-weight: 600;
  cursor: pointer;
  position: relative;
}.ci-text .mention-file:hover { filter: brightness(1.15); }.mention-thumb-float {
  position: fixed;
  z-index: 2147483640;
  background: var(--panel, #1b1d22);
  border: 1px solid var(--line, #333);
  border-radius: 10px;
  padding: 8px;
  box-shadow: 0 12px 32px rgba(0,0,0,.55);
  min-width: 140px;
  max-width: 320px;
  pointer-events: none;
  animation: mpFadeIn .14s ease;
}.mention-thumb-float .mtf-img {
  display: block;
  max-width: 280px;
  max-height: 200px;
  border-radius: 6px;
  background: #000;
  object-fit: contain;
  margin: 0 auto;
}.mention-thumb-float .mtf-cap {
  display: block;
  margin-top: 6px;
  font-size: 15px;
  color: var(--text-2, #aaa);
  text-align: center;
  word-break: break-all;
  max-width: 280px;
}.mention-thumb-float .mtf-empty { padding: 10px 14px; color: var(--text-3, #888); font-size: 15px; text-align: center; }@keyframes mpFadeIn {from { opacity: 0; }to { opacity: 1; } }.comments-panel.review-side { height: auto; min-height: 0; min-width: 260px; flex: 0 0 var(--side-w); width: var(--side-w); max-width: 72vw; border-left: 1px solid var(--line); border-top: none; }.comments-panel.review-side .cp-head { flex-wrap: wrap; gap: 10px; padding: 12px 16px; }.comments-panel.review-side .cp-filters { flex-wrap: wrap; }.comments-panel.review-side .comment-list { flex: 1; padding: 10px 14px; }.ver-pill { display: flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: 20px; background: var(--bg-3); border: 1px solid var(--line); cursor: pointer; font-size: 15px; white-space: nowrap; }.ver-pill.active { border-color: var(--accent); color: var(--accent); }.stage-wrap {
  flex: 1; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start;
  background: #000; overflow: hidden; position: relative;
  padding: 18px 26px;
}.stage { position: relative; flex: 1 1 auto; width: 100%; min-height: 0; display: flex; align-items: center; justify-content: center; }.stage.video-zoomed { overflow: hidden; }.stage video { max-width: 100%; max-height: 100%; display: block; background: #000; }.anno-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; cursor: crosshair; }.anno-tools { position: absolute; top: 12px; left: 50%; transform: translateX(-50%); display: none; gap: 6px; background: rgba(0,0,0,.6); padding: 6px 10px; border-radius: 10px; align-items: center; backdrop-filter: blur(4px); max-width: 96vw; flex-wrap: nowrap; white-space: nowrap; justify-content: center; z-index: 10; cursor: grab; }.anno-tools.show { display: flex; }.anno-tools.dragging { cursor: grabbing; user-select: none; }.anno-tools button, .anno-tools input, .anno-tools .color-row { cursor: pointer; }.tool-btn { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); width: 30px; height: 30px; flex-shrink: 0; border-radius: 8px; cursor: pointer; font-size: 16px; display: inline-flex; align-items: center; justify-content: center; }.tool-btn.active { border-color: var(--accent); background: #23344f; color: var(--accent); }.tool-btn.danger:hover { border-color: var(--danger); color: var(--danger); }.tool-btn.text-btn { width: auto; padding: 0 8px; font-size: 15px; white-space: nowrap; }.color-row { display: flex; gap: 4px; margin: 0 4px; align-items: center; flex-shrink: 0; }.color-dot { display: inline-block; width: 16px; height: 16px; border-radius: 50%; cursor: pointer; border: 2px solid transparent; box-shadow: 0 0 0 1px rgba(255,255,255,.25); transition: transform .12s; }.color-dot:hover { transform: scale(1.12); }.color-dot.active { border-color: #fff; box-shadow: 0 0 0 2px var(--accent); transform: scale(1.12); }.stage-hint { position: absolute; bottom: 86px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,.65); padding: 6px 14px; border-radius: 8px; font-size: 15px; color: var(--accent-2); display: none; z-index: 20; pointer-events: none; }.compare-stage { display: flex; gap: 4px; flex: 1 1 auto; min-height: 0; width: 100%; background: #000; }.cmp-col { flex: 1; min-width: 0; position: relative; display: flex; align-items: center; justify-content: center; }.cmp-col video, .cmp-col img, .cmp-col audio { max-width: 100%; max-height: 100%; object-fit: contain; }.cmp-label { position: absolute; top: 10px; left: 10px; background: rgba(0,0,0,.6); padding: 3px 12px; border-radius: 6px; font-size: 15px; z-index: 2; }.cmp-wave { width: 100%; height: 80px; background: rgba(0,0,0,.3); border: 1px solid rgba(255,126,179,.18); border-radius: 10px; margin-top: 8px; display: block; }.review-stage:fullscreen { width: 100vw; height: 100vh; background: #000; display: flex; flex-direction: column; }.review-stage:fullscreen .stage-wrap { flex: 1 1 auto; min-height: 0; padding: 26px 44px; }.review-stage:fullscreen .stage video,
.review-stage:fullscreen .stage .media-img { max-width: 100%; max-height: 100%; }.review-stage:fullscreen .compare-stage { flex: 1 1 auto; min-height: 0; }.review-stage:fullscreen .cmp-col video,
.review-stage:fullscreen .cmp-col img,
.review-stage:fullscreen .cmp-col audio { max-width: 100%; max-height: 100%; }.stage-wrap.no-safe-pad { padding: 0 !important; }.stage.fit-contain video, .stage.fit-contain .media-img { object-fit: contain; background: #000; max-width: 100%; max-height: 100%; }.stage.fit-cover video, .stage.fit-cover .media-img { object-fit: cover; }.controls { display: flex; align-items: center; gap: 12px; padding: 12px 20px; background: var(--bg-2); border-top: 1px solid var(--line); }.ctrl-btn { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); width: 40px; height: 40px; border-radius: 8px; cursor: pointer; font-size: 18px; display: flex; align-items: center; justify-content: center; padding: 0; line-height: 1; }.ctrl-btn:hover { border-color: var(--accent); color: var(--accent); }.ctrl-btn.active { border-color: var(--accent); background: rgba(255,126,179,.18); color: var(--accent); }.ctrl-btn.wide { width: auto; padding: 0 14px; justify-content: center; }#abLoopBtn { min-width: 64px; width: auto; padding: 0 10px; white-space: nowrap; }.img-ctrl-group { display: none; align-items: center; flex: 0 0 auto; }#reviewStage.img-consolidated #controls { display: none !important; }#reviewStage.img-consolidated #imgCtrlGroup { display: inline-flex; }#reviewStage.img-consolidated #imgGuideBtn { display: inline-flex; }#reviewStage.img-consolidated .comment-input-bar { flex-wrap: nowrap; }#reviewStage.img-consolidated .cib-input { flex-basis: 160px; min-width: 80px; }#imgAnnotateBtn { width: auto; padding: 0 12px; }#imgGuideBtn { display: none; }.timecode { font-family: "SF Mono", Consolas, monospace; font-size: 16px; color: var(--accent-2); min-width: 110px; text-align: center; }.dur { font-family: "SF Mono", Consolas, monospace; font-size: 15px; color: var(--text-3); min-width: 90px; }.seek { flex: 1; accent-color: var(--accent); cursor: pointer; }.speed { width: 80px; }.comments-panel { height: 260px; background: var(--bg-2); border-top: 1px solid var(--line); display: flex; flex-direction: column; }.cp-head { display: flex; align-items: center; gap: 14px; padding: 10px 20px; border-bottom: 1px solid var(--line); }.cp-head > span { font-weight: 600; font-size: 17px; }.cp-filters { display: flex; gap: 10px; margin-left: auto; }.comment-list { flex: 1; overflow-y: auto; padding: 10px 16px; }.comment-item { display: flex; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 8px; background: var(--bg-3); cursor: pointer; }.comment-item { transition: border-color .15s, box-shadow .15s, opacity .15s; }.comment-item:hover { border-color: #ff7ab8; box-shadow: 0 0 0 1px rgba(255,122,184,.35), 0 4px 14px rgba(255,122,184,.14); }.comment-item.resolved { opacity: .55; }.comment-item.resolved:hover { opacity: .9; border-color: #2dd4a7; box-shadow: 0 0 0 1px rgba(45,212,167,.35), 0 4px 14px rgba(45,212,167,.14); }.comment-item.active { border-color: var(--accent); background: #1b2740; }.comment-item.old-version {
  opacity: .62;
  filter: grayscale(.55);
  background: #161d2e;
  border-color: rgba(255,255,255,.06);
}.comment-item.old-version:hover {
  opacity: .92;
  border-color: #7c8aa6;
  box-shadow: 0 0 0 1px rgba(124,138,166,.30), 0 4px 14px rgba(0,0,0,.25);
  filter: grayscale(.2);
}.comment-version-sep {
  display: flex; align-items: center; gap: 8px;
  font-size: 15px; font-weight: 700; letter-spacing: .3px;
  margin: 14px 2px 8px; padding: 6px 10px; border-radius: 8px;
}.comment-version-sep::before { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.18)); }.comment-version-sep::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, rgba(255,255,255,.18), transparent); }.comment-version-sep.sep-current { color: #ff9ecb; background: rgba(255,126,179,.10); }.comment-version-sep.sep-old { color: #9fb0cc; background: rgba(255,255,255,.05); }.ci-version {
  display: inline-flex; align-items: center; padding: 1px 7px; border-radius: 999px;
  font-size: 15px; font-weight: 700; line-height: 1.6;
}.ci-version.ver-cur { color: #ffd2e7; background: rgba(255,126,179,.16); border: 1px solid rgba(255,126,179,.35); }.ci-version.ver-old { color: #aeb9cc; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); }.comment-item.just-added { animation: ciJustAdded 1.8s ease-out 1; }@keyframes ciJustAdded {0% { box-shadow: 0 0 0 2px rgba(79,124,255,.85), 0 0 22px rgba(79,124,255,.5); background: #22314f; }70% { box-shadow: 0 0 0 2px rgba(79,124,255,.45), 0 0 14px rgba(79,124,255,.25); }100% { box-shadow: none; }
}.ci-avatar { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 15px; font-weight: 600; flex-shrink: 0; }.ci-body { flex: 1; min-width: 0; position: relative; }.ci-corner {
  position: static;
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  white-space: nowrap;
  flex: none;
  pointer-events: none;
}.ci-corner .ci-status,
.ci-corner .ci-priority { flex: none; white-space: nowrap; }.ci-meta { display: flex; align-items: center; flex-wrap: wrap; row-gap: 4px; gap: 10px; font-size: 15px; color: var(--text-3); margin-bottom: 3px; min-height: 22px; }@media (max-width: 900px) {.ci-corner .ci-priority { max-width: 74px; overflow: hidden; text-overflow: ellipsis; }
}.ci-author {
  color: var(--text);
  font-weight: 600;
  max-width: 110px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex-shrink: 1;
  
}.ci-author.short { max-width: 28px; }@media (max-width: 900px) {.ci-author { max-width: 56px; }
}@media (max-width: 640px) {.ci-author { max-width: 28px; }
}.ci-time { font-family: monospace; color: var(--accent-2); cursor: pointer; }.ci-created { font-size: 15px; color: var(--text-3); white-space: nowrap; }.ci-pushed-from { font-size: 15px; color: var(--accent-2); background: rgba(255,126,179,.10); border: 1px solid rgba(255,126,179,.25); border-radius: 999px; padding: 1px 8px; white-space: nowrap; }.ci-text { font-size: 16px; line-height: 1.5; word-break: break-word; color: #ffffff; }.ci-status { font-size: 15px; padding: 2px 9px; border-radius: 10px; }.ci-status.open { background: rgba(245,166,35,.15); color: var(--warn); }.ci-status.resolved { background: rgba(45,212,167,.15); color: var(--ok); }.ci-thumb { width: 100px; height: 58px; border-radius: 6px; background: #000; object-fit: contain; flex-shrink: 0; border: 1px solid var(--line); }.ci-actions { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }.ci-actions button { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); cursor: pointer; font-size: 15px; padding: 3px 10px; border-radius: 7px; transition: .15s; }.ci-actions button:hover { background: var(--bg-2); border-color: var(--accent); color: var(--accent); }.ci-actions button[data-act="del"] { color: #ff6b6b; border-color: rgba(255,107,107,.35); }.ci-actions button[data-act="del"]:hover { background: rgba(255,107,107,.12); border-color: #ff6b6b; color: #ff8585; }.ci-actions button[data-act="resolve"] { color: #2dd4a8; border-color: rgba(45,212,168,.35); }.ci-actions button[data-act="resolve"]:hover { background: rgba(45,212,168,.12); border-color: #2dd4a8; color: #4fe0be; }.ci-replies { margin-top: 8px; padding-left: 12px; border-left: 2px solid var(--line); }.ci-reply { display:block; font-size:15px; color:var(--text-2); margin-top:8px; }.ci-reply-head { display:flex; align-items:baseline; justify-content:space-between; gap:10px; width:100%; }.ci-reply-content { display:block; min-width:0; margin-top:3px; overflow-wrap:anywhere; line-height:1.5; }.ci-reply-time { flex:0 0 auto; color:var(--text-3); font-size:13px; white-space:nowrap; }.ci-reply b { color: var(--text); }.ci-reply-box { margin-top: 10px; padding: 10px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; }.ci-reply-input { width: 100%; min-height: 58px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; color: var(--text); font-size: 15px; line-height: 1.5; outline: none; resize: vertical; box-sizing: border-box; }.ci-reply-input:focus { border-color: var(--accent); }.ci-reply-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }.modal-mask { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 50; overflow: auto; padding: 24px; }.review-stage:fullscreen .modal-mask { z-index: 2147483600 !important; }.modal { position: relative; background: transparent; border: none; box-shadow: none; padding: 0; width: 860px; max-width: 96vw; overflow: visible; box-sizing: border-box; margin: auto; font-size: 19px; }.modal.modal-wide { width: 1080px; max-width: 96vw; }.modal-card { width: 100%; color: var(--text); background: rgba(21,18,31,.9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,126,179,.28); border-radius: 14px; padding: 24px; max-height: calc(86vh - 60px); overflow-y: auto; box-shadow: 0 24px 64px rgba(0,0,0,.5); box-sizing: border-box; position: relative; z-index: 1; }.modal-card.q-rename-modal { background: transparent; border: none; box-shadow: none; padding: 0; max-height: none; overflow: visible; }.modal h3 { margin: 0 0 14px; font-size: 22px; }.modal label { display: block; font-size: 16px; color: var(--text-2); margin-bottom: 5px; }.modal input, .modal textarea, .modal select { width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 8px 10px; margin-bottom: 10px; font-size: 17px; }.modal .row { display: flex; gap: 12px; }.modal .row > div { flex: 1; }.modal .row > div input, .modal .row > div select { margin-bottom: 10px; }.modal-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 14px; padding: 4px 0 6px; }.modal-actions > * { margin: 2px 0; }.modal-actions > *:first-child { margin-left: 0; }.modal-actions > *:last-child { margin-right: 0; }.dialog-actions { display: flex; justify-content: flex-end; gap: 12px; padding: 6px 0; }.dialog-actions > * { margin: 2px 0; }.admin-panel .primary-btn, .admin-panel .ghost-btn { margin: 4px 2px; }.admin-toolbar > * { margin: 4px 2px; }.modal input, .modal select, .modal textarea { box-sizing: border-box; }.q-rename-wrap.np-wrap {
  width: 760px; max-width: 96vw;
}.np-form-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin-top: 4px;
  max-height: calc(90vh - 180px);
  overflow: visible;
}.np-form-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }.np-form-col-right { min-width: 0; }.np-form-label { font-size: 16px; color: #d8d4e5; font-weight: 600; display: flex; align-items: center; gap: 8px; }.np-form-label .np-form-hint { color: var(--text-3); font-weight: 400; font-size: 15px; }.np-form-input,
.np-form-select,
.np-form-textarea {
  width: 100%; box-sizing: border-box;
  background: rgba(0,0,0,.32); border: 1.5px solid rgba(255,126,179,.40);
  color: #fff; font-size: 18px; border-radius: 12px; padding: 10px 12px;
  outline: none; transition: border-color .15s, box-shadow .15s, background .15s;
  font-family: inherit;
}.np-form-input::placeholder,
.np-form-textarea::placeholder { color: rgba(255,234,243,.45); }.np-form-input:focus,
.np-form-select:focus,
.np-form-textarea:focus {
  border-color: #ff7eb3;
  box-shadow: 0 0 0 4px rgba(255,126,179,.20);
  background: rgba(0,0,0,.42);
}.np-form-textarea { min-height: 64px; resize: vertical; line-height: 1.5; }.np-form-select { appearance: auto; cursor: pointer; }.np-form-logo { margin: 0; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }.np-logo-actions { display: flex; flex-direction: column; gap: 6px; }.np-form-ghost {
  background: rgba(255,255,255,.10); color: #fff; border: 1px solid rgba(255,255,255,.18);
  border-radius: 10px; padding: 7px 13px; font-size: 16px; font-weight: 600; cursor: pointer;
  transition: background .12s, transform .12s;
}.np-form-ghost:hover { background: rgba(255,255,255,.18); transform: translateY(-1px); }.np-form-clear {
  width: 24px; height: 24px; border-radius: 50%; border: none;
  background: rgba(255,77,79,.22); color: #ff9ea3; cursor: pointer;
  font-size: 17px; line-height: 1; display: flex; align-items: center; justify-content: center;
}.np-form-clear:hover { background: rgba(255,77,79,.35); color: #fff; }.np-logo-preview { width: 52px; height: 52px; border-radius: 12px; background: rgba(0,0,0,.25) center/cover no-repeat; border: 1.5px dashed rgba(255,126,179,.45); flex: 0 0 52px; }.np-logo-preview.has-img { border-style: solid; }.cropper-modal .modal-card { max-width: 720px; width: 92vw; padding: 0; overflow: hidden; background: #1a1325; max-height: calc(92vh - 60px); }.cropper-wrap { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px 20px; max-height: calc(92vh - 100px); overflow-y: auto; }.cropper-title { font-size: 20px; font-weight: 700; color: #fff; margin: 0; }.cropper-stage { position: relative; display: flex; justify-content: center; align-items: center; background: #0f0a17; border-radius: 12px; overflow: hidden; min-height: 240px; max-height: min(46vh, 420px); }.cropper-stage img { max-width: 100%; max-height: min(46vh, 420px); display: block; user-select: none; -webkit-user-drag: none; }.cropper-overlay { position: absolute; inset: 0; pointer-events: none; }.cropper-overlay::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,.55); pointer-events: none; }.cropper-square { position: absolute; border: 2px dashed #ff7eb3; background: transparent; cursor: move; box-shadow: 0 0 0 9999px rgba(0,0,0,.55); pointer-events: auto; touch-action: none; }.cropper-square::after { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(0deg, transparent, transparent 9px, rgba(255,255,255,.25) 10px), repeating-linear-gradient(90deg, transparent, transparent 9px, rgba(255,255,255,.25) 10px); pointer-events: none; opacity: .5; }.cropper-handle { position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; background: #ff7eb3; border-radius: 50%; cursor: nwse-resize; box-shadow: 0 0 0 2px #1a1325; z-index: 2; }.cropper-tools { display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.8); font-size: 15px; }.cropper-tools input[type=range] { flex: 1; }.cropper-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 4px; }.np-members {
  flex: 1;
  min-height: 0;
  max-height: 246px;
  overflow-y: auto;
  border: 1.5px solid rgba(255,126,179,.30);
  border-top: none;
  border-radius: 0 0 12px 12px;
  padding: 6px;
  background: rgba(0,0,0,.22);
}.np-select-all {
  display: flex;
  align-items: center;
  justify-content: space-between;
  
  padding: 2px 10px;
  background: rgba(255,255,255,.05);
  border: 1.5px solid rgba(255,126,179,.30);
  border-bottom: none;
  border-radius: 12px 12px 0 0;
  font-size: 15px;
  color: rgba(255,255,255,.85);
}.np-select-all input[type=checkbox] { width: 14px; height: 14px; }.np-select-all label { display: flex; align-items: center; gap: 6px; cursor: pointer; }.np-select-all input { width: auto; margin: 0; }.np-select-count { font-size: 15px; color: var(--text-3); }.np-member { display: flex; align-items: center; gap: 8px; padding: 3px 6px; border-radius: 8px; cursor: pointer; font-size: 17px; color: #f0eef5; transition: background .12s; flex-wrap: nowrap; }.np-member:hover { background: rgba(255,255,255,.07); }.np-member input.np-member-cb { width: auto; margin: 0; flex: 0 0 auto; }.np-member-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }.np-member-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.modal .np-member-role {
  flex: 0 0 auto;
  font-size: 15px;
  width: 110px;
  max-width: 110px;
  box-sizing: border-box;
  height: 24px;
  padding: 0 6px;
  line-height: 22px;
  margin-bottom: 0;
  border-radius: 8px;
  background: rgba(0,0,0,.35);
  color: #fff;
  border: 1px solid rgba(255,255,255,.16);
  outline: none;
  cursor: pointer;
  text-align: center;
}.modal .np-member-role:focus { border-color: #ff7eb3; }@media (max-width: 820px) {.np-wrap { width: 520px; }.np-form-body { grid-template-columns: 1fr; max-height: 70vh; overflow-y: auto; }.np-members { max-height: 200px; }
}.gr-filters { gap: 8px; }.gr-cat { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 15px; font-weight: 700; }.gr-cat-member { background: rgba(124,58,237,.22); color: #c4a4ff; border: 1px solid rgba(124,58,237,.45); }.gr-cat-coupon { background: rgba(255,143,199,.22); color: #ffb6d3; border: 1px solid rgba(255,143,199,.45); }.support-row .support-qq-btn {
  display: inline-block; margin-left: 10px; padding: 4px 12px; border: 0; cursor: pointer;
  border-radius: 999px; font-size: 15px; font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #12B7F5 0%, #0078FF 100%);
  box-shadow: 0 4px 12px rgba(0,120,255,.35);
  transition: transform .12s, box-shadow .12s;
}.support-row .support-qq-btn:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(0,120,255,.45); }.support-row .support-qq-btn:active { transform: translateY(0); }.do-traffic-panel { margin-top: 16px; }.do-traffic-overview { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; margin-bottom: 16px; }.do-tr-card { display: flex; align-items: center; gap: 12px; padding: 14px 16px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px; }.do-tr-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 24px; flex-shrink: 0; }.do-tr-val { font-size: 22px; font-weight: 700; color: var(--text); }.do-tr-lab { font-size: 15px; color: var(--text-3); margin-top: 2px; }.do-tr-bar { height: 8px; background: rgba(255,255,255,.08); border-radius: 999px; overflow: hidden; }.do-tr-bar-fill { height: 100%; background: linear-gradient(90deg, #7c5cff 0%, #ff7eb3 100%); transition: width .25s; }@media (max-width: 1100px) {.do-traffic-overview { grid-template-columns: repeat(2, 1fr); } }.dialog-mask { position: fixed; inset: 0; background: rgba(0,0,0,.65); display: flex; align-items: center; justify-content: center; z-index: 10001; backdrop-filter: blur(2px); }.dialog-card { position: relative; background: rgba(21,18,31,.92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border: 1px solid rgba(255,126,179,.28); border-radius: 16px; padding: 22px 24px; width: 420px; max-width: 90vw; box-shadow: 0 20px 60px rgba(0,0,0,.5); animation: dialogPop .22s cubic-bezier(.34,1.56,.64,1); color: var(--text); overflow: visible; }@keyframes dialogPop {from { opacity: 0; transform: scale(.92) translateY(10px); }to { opacity: 1; transform: scale(1) translateY(0); } }.dialog-title { font-size: 21px; font-weight: 700; color: var(--text); margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }.dialog-body { font-size: 18px; line-height: 1.6; color: var(--text-2); margin-bottom: 20px; white-space: pre-wrap; }.dialog-input { width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 10px; padding: 10px 12px; font-size: 18px; outline: none; }.modal.q-rename-modal { background: transparent; border: none; box-shadow: none; padding: 0; overflow: visible; display: flex; justify-content: center; width: auto; min-width: 0; }.q-rename-wrap {
  position: relative;
  width: 440px;
  max-width: 92vw;
  border-radius: 18px;
  padding: 22px 22px 18px;

  background:
    linear-gradient(180deg, rgba(40,28,52,.96) 0%, rgba(21,18,31,.96) 100%),
    rgba(21,18,31,.96);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: var(--text);
  box-shadow: 0 24px 64px rgba(0,0,0,.55), 0 0 0 1px rgba(255,126,179,.28);
  animation: qRenameIn .28s cubic-bezier(.34,1.56,.64,1);

  display: flex;
  flex-direction: column;
  max-height: calc(92vh - 60px);
}.q-rename-wrap.support-wrap { width: 480px; max-width: 92vw; }.q-rename-body, .np-form-body, .rep-edit-node-body, .support-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
}.q-rename-ears, .q-rename-header, .q-rename-actions, .q-rename-wrap > .modal-actions { flex: 0 0 auto; }@keyframes qRenameIn {from { opacity: 0; transform: translateY(10px) scale(.96); }to { opacity: 1; transform: translateY(0) scale(1); }
}.q-rename-header { display: flex; flex-direction: column; align-items: center; gap: 6px; margin-bottom: 14px; }.q-rename-ears {
  position: absolute; left: 50%; top: -20px; transform: translateX(-50%);
  width: 132px; height: 34px; pointer-events: none; z-index: 3;
}.q-rename-ears .q-ear {
  position: absolute; bottom: -4px; width: 46px; height: 40px;
  background: linear-gradient(180deg, #ff9ec7 0%, #ff7eb3 55%, #f45f9e 100%);
  border-radius: 50% 50% 42% 42% / 68% 68% 32% 32%;
  box-shadow: 0 -4px 14px rgba(255,126,179,.45);
}.q-rename-ears .q-ear::after {
  content: ''; position: absolute; left: 50%; top: 9px; transform: translateX(-50%);
  width: 20px; height: 21px; border-radius: 50% 50% 45% 45% / 65% 65% 35% 35%;
  background: rgba(255,255,255,.55);
}.q-rename-ears .q-ear-l { left: 6px; transform: rotate(-17deg); transform-origin: bottom center; animation: qEarWiggleL 2.4s ease-in-out infinite; }.q-rename-ears .q-ear-r { right: 6px; transform: rotate(17deg); transform-origin: bottom center; animation: qEarWiggleR 2.4s ease-in-out infinite; }.modal.av-modal { width: 560px; max-width: 96vw; }.modal-card.av-modal { overflow: visible; padding-top: 30px; }.av-list { grid-template-columns: 1fr; max-height: 56vh; overflow-y: auto; gap: 10px; margin-top: 6px; }.av-opt {
  display: flex; flex-direction: column; gap: 3px; text-align: left;
  width: 100%; box-sizing: border-box; cursor: pointer;
  -webkit-appearance: none; appearance: none; font: inherit;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,126,179,.28);
  color: var(--text); border-radius: 12px; padding: 11px 14px;
  transition: background .15s, border-color .15s, transform .12s;
}.av-opt:hover { background: rgba(255,126,179,.16); border-color: rgba(255,126,179,.6); }.av-opt:active { transform: scale(.992); }.av-opt:focus-visible { outline: 2px solid #ff7eb3; outline-offset: 2px; }.av-name { font-weight: 600; color: #ffeaf3; font-size: 17px; }.av-meta { font-size: 15px; color: var(--text-2); }@keyframes qEarWiggleL {0%,100% { transform: rotate(-17deg); }50% { transform: rotate(-25deg); } }@keyframes qEarWiggleR {0%,100% { transform: rotate(17deg); }50% { transform: rotate(25deg); } }.q-rename-title { margin: 0; font-size: 21px; font-weight: 700; color: #ffeaf3; letter-spacing: .5px; }.q-rename-sub { font-size: 16px; color: var(--text-2); }.q-rename-body { display: flex; flex-direction: column; gap: 6px; }.q-rename-input {
  width: 100%; box-sizing: border-box;
  background: rgba(0,0,0,.32); border: 1.5px solid rgba(255,126,179,.45);
  color: #fff; font-size: 20px; font-weight: 600;
  border-radius: 12px; padding: 12px 14px;
  outline: none; transition: border-color .15s, box-shadow .15s, background .15s;
}.q-rename-input::placeholder { color: rgba(255,234,243,.45); font-weight: 400; }.q-rename-input:focus {
  border-color: #ff7eb3;
  box-shadow: 0 0 0 4px rgba(255,126,179,.22);
  background: rgba(0,0,0,.42);
}.q-rename-tip { font-size: 16px; color: var(--text-2); padding: 0 4px; }.q-rename-tip b { color: #ff7eb3; font-weight: 700; }.q-rename-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }.q-rename-btn {
  border: 0; border-radius: 10px; padding: 9px 16px; font-size: 17px; font-weight: 700;
  cursor: pointer; transition: transform .12s, box-shadow .12s, background .12s;
  font-family: inherit;
}.q-rename-btn-ghost { background: rgba(255,255,255,.08); color: var(--text-2); }.q-rename-btn-ghost:hover { background: rgba(255,255,255,.15); color: #fff; }.q-rename-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, #ff7eb3 0%, #ff5a8a 50%, #c34ce0 100%);
  box-shadow: 0 6px 18px rgba(255,126,179,.4);
}.q-rename-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px rgba(255,126,179,.5); }.push-anno-wrap { width: 520px; max-width: 94vw; }.push-anno-body { gap: 10px; }.pa-tip { font-size: 15px; color: var(--text-2); line-height: 1.6; margin: 0; }.pa-tip b { color: #ff7eb3; font-weight: 700; }.pa-list { list-style: none; margin: 0; padding: 0; max-height: 320px; overflow-y: auto; display: flex; flex-direction: column; gap: 6px; }.pa-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 12px; background: rgba(255,255,255,.05); border-radius: 10px; }.pa-all-bar { margin: 2px 0 8px; }.pa-all-bar .ghost-btn { font-size: 15px; padding: 6px 12px; }.pa-file-target { background: rgba(0,0,0,.32); border: 1.5px solid rgba(255,126,179,.40); color: #fff; border-radius: 10px; padding: 6px 10px; font-size: 15px; font-family: inherit; cursor: pointer; max-width: 240px; min-width: 160px; }.pa-file-target:focus { border-color: #ff7eb3; outline: none; box-shadow: 0 0 0 3px rgba(255,126,179,.18); }.pa-name { font-size: 15px; color: #fff; font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.pa-tag { font-size: 15px; font-weight: 700; padding: 3px 8px; border-radius: 20px; white-space: nowrap; }.pa-tag-anno { background: rgba(230,115,58,.22); color: #ff9d5c; }.pa-tag-file { background: rgba(124,58,237,.28); color: #c9a6ff; }.q-rename-btn-primary:active { transform: translateY(0); }.q-rename-btn-danger { background: rgba(255,77,79,.18); color: #ff9ea3; }.q-rename-btn-danger:hover { background: rgba(255,77,79,.30); color: #fff; }.q-rename-wrap.rm-child-modal { width: 360px; max-width: 92vw; }.rm-child-modal .q-rename-actions { justify-content: center; }.rm-child-modal .q-rename-btn { text-align: center; justify-content: center; flex: 0 1 auto; min-width: 120px; }.rm-child-modal .acct-label-sm { display: inline-flex; align-items: center; gap: 10px; color: var(--text-2); font-size: 15px; line-height: 1.2; margin: 4px 0; }.rm-child-modal input[type=checkbox] { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; outline: none; }.rm-child-modal input[type=checkbox]:hover,
.rm-child-modal input[type=checkbox]:checked,
.rm-child-modal input[type=checkbox]:focus,
.rm-child-modal input[type=checkbox]:focus-visible { outline: none; box-shadow: none; }.rep-edit-node-wrap { width: 760px; max-width: 94vw; }.rep-edit-node-wrap .rep-h3 { margin: 0; font-size: 20px; font-weight: 700; color: #ffeaf3; }.rep-edit-node-body { display: flex; flex-direction: column; gap: 12px; }.rep-edit-node-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.rep-edit-node-row > label { font-size: 15px; color: var(--text-2); white-space: nowrap; }.rep-edit-node-row .rep-node-color { flex: 0 0 auto; }.rep-edit-node-row .rep-node-name { flex: 2 1 240px; min-width: 180px; }.rep-edit-node-row .rep-node-time-wrap { flex: 0 1 140px; min-width: 125px; max-width: 150px; }.rep-edit-node-row .rep-node-time-wrap .rep-time-icon { right: 8px; }.rep-edit-node-palette { width: 100%; padding-left: 80px; }.rep-edit-node-palette .rep-color-pop { margin-top: 0; }.rep-edit-node-wrap .rep-rm-list-inline .rep-rm-row { flex: 0 0 100%; min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; }.rep-rm-row .rep-rm-preset { flex: 0 0 auto; }.rep-rm-row .rep-rm-custom { flex: 0 0 auto; }.rep-rm-row .rep-node-method { flex: 0 0 auto; padding: 2px 7px 2px 4px; font-size: 15px; line-height: 1.4; }.rep-rm-row .rep-rm-del { margin-left: auto; flex: 0 0 auto; }.rep-rm-head { gap: 12px; align-items: center; }.rep-rm-head-tip { color: var(--text-3); font-size: 15px; }.rep-edit-node-body { display: flex; flex-direction: column; gap: 12px; flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-right: 4px; }.rep-rm-row .filter-select.rep-rm-preset { min-width: 0; width: auto; max-width: 100%; padding-right: 20px; }.rep-rm-row .rep-rm-custom .rep-rm-unit { width: 90px; min-width: 90px; font-size: 15px; padding: 4px 6px; }.rep-rm-custom .rep-rm-amt { width: 56px; }.rep-edit-node-main { flex-wrap: nowrap; }.rep-edit-node-main .rep-node-name-wrap,
.rep-edit-node-main .rep-node-time-wrap { flex: 1 1 0 !important; min-width: 0 !important; max-width: none !important; }.rep-node-name-wrap { display: block; }.rep-node-name-wrap .rep-node-name { width: 100%; box-sizing: border-box; min-width: 0; }.rep-node-method { position: relative; display: inline-flex; align-items: center; gap: 4px; font-size: 15px; color: var(--text-2); white-space: nowrap; cursor: pointer; padding: 1px 5px 1px 3px; border: 1px solid rgba(255,255,255,.18); border-radius: 5px; transition: background .15s, color .15s, border-color .15s; }.rep-node-method input { appearance: none; -webkit-appearance: none; width: 12px; height: 12px; border: 2px solid rgba(255,255,255,.35); border-radius: 3px; background: rgba(0,0,0,.25); cursor: pointer; position: relative; transition: border-color .15s, background .15s; flex: 0 0 auto; }.rep-node-method input:checked { background: var(--accent); border-color: var(--accent); }.rep-node-method input:checked::after { content: '✓'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 15px; color: #fff; font-weight: 700; }.rep-node-method:has(input:checked) { color: #fff; background: rgba(255,126,179,.18); border-color: rgba(255,126,179,.6); }.rep-edit-node-wrap .rep-rm-list-inline { max-height: 260px; overflow-y: auto; padding-right: 4px; }.rep-edit-node-wrap .rep-rm-row .rep-node-method { font-size: 15px; padding: 0px 4px 0px 2px; border-radius: 4px; gap: 3px; }.rep-edit-node-wrap .rep-rm-row .rep-node-method input { width: 11px; height: 11px; }.rep-edit-node-wrap .rep-rm-row .rep-node-method input:checked::after { font-size: 15px; }.rep-edit-node-wrap .rep-rm-row .rep-rm-del { margin-left: auto; order: 99; font-size: 15px; padding: 2px 6px; }.dialog-input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(255,126,179,.12); }.dialog-actions { display: flex; justify-content: flex-end; gap: 10px; }.dialog-actions .primary-btn, .dialog-actions .ghost-btn { padding: 8px 18px; border-radius: 10px; font-size: 18px; }.dialog-actions .danger { color: #ff4d4f; border-color: rgba(255,77,79,.35); }.dialog-actions .danger:hover { background: rgba(255,77,79,.12); }.share-box { background: var(--bg-3); border: 1px dashed var(--line); border-radius: 8px; padding: 14px; word-break: break-all; font-size: 15px; color: var(--text-2); margin-bottom: 16px; }.invite-role-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 10px 0 18px; }.invite-role-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 14px 10px; border-radius: 12px; font-size: 17px; font-weight: 400; line-height: 1.3; text-align: center; min-height: 76px; }.invite-role-btn .invite-role-desc { font-size: 15px; color: var(--text-2); font-weight: 400; }.member-layout { display: flex; gap: 22px; align-items: flex-start; }.member-left { flex: 0 0 230px; }.member-right { flex: 1; min-width: 0; }.perm-section { margin: 0 0 14px; }.perm-section-title { font-size: 15px; color: var(--text); font-weight: 600; margin: 10px 0 8px; display: flex; align-items: center; gap: 6px; }.perm-section-title .hint { font-size: 15px; color: var(--text-3); font-weight: 400; }.perm-cols { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }.perm-col { background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 8px 8px 10px; }.perm-col-title { font-size: 15px; color: var(--accent); margin-bottom: 7px; font-weight: 600; text-align: center; }.perm-items { display: flex; flex-direction: column; gap: 10px; }.perm-toggle { display: flex; align-items: center; width: 100%; text-align: left; border: 1.5px solid var(--line); background: var(--bg-3); color: #fff; border-radius: 8px; padding: 5px 8px; font-size: 15px; line-height: 1.2; cursor: pointer; transition: .15s; }.perm-toggle:hover { border-color: var(--accent); color: #fff; }.perm-toggle.on { border-color: var(--accent); background: rgba(255,126,179,.16); color: #fff; font-weight: 500; }.m-perm-count { font-size: 15px; color: var(--accent); }.grant-note { font-size: 15px; color: var(--text-3); margin: 4px 0 0; }.toast { position: fixed; bottom: 26px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--bg-3); border: 1px solid var(--line); color: var(--text); padding: 12px 20px; border-radius: 10px; opacity: 0; transition: .25s; pointer-events: none; z-index: 2147483647; font-size: 16px; }.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }::-webkit-scrollbar { width: 10px; height: 10px; }::-webkit-scrollbar-thumb { background: #2a3340; border-radius: 6px; }::-webkit-scrollbar-thumb:hover { background: #3a4658; }.timeline-bar { padding: 10px 20px 0; background: var(--bg-2); border-top: 1px solid var(--line); }.timeline-track { position: relative; height: 16px; background: var(--bg-3); border-radius: 8px; overflow: visible; }.tl-dot, .tl-seg { background: #4f7cff; }.tl-dot { position: absolute; top: 50%; transform: translate(-50%, -50%); width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--bg-2); cursor: pointer; }.tl-seg { position: absolute; top: 50%; transform: translateY(-50%); height: 8px; border-radius: 4px; min-width: 4px; cursor: pointer; }.tl-dot.priority-normal, .tl-seg.priority-normal { background: #4f7cff; }.tl-dot.priority-must-fix, .tl-seg.priority-must-fix { background: #ff4d4f; }.tl-dot.priority-praise, .tl-seg.priority-praise { background: #2ecc71; }.tl-dot.resolved, .tl-seg.resolved { background: #2ecc71; opacity: 1; }.tl-dot:hover { transform: translate(-50%, -50%) scale(1.5); }.tl-dot.has-annotation { border-radius: 4px; border-color: #ffffff; width: 12px; height: 12px; box-shadow: 0 0 0 1px rgba(0,0,0,.35), 0 0 8px rgba(255,255,255,.55); }.tl-dot.has-annotation:hover { transform: translate(-50%, -50%) scale(1.35); }.tl-seg.has-annotation { box-shadow: inset 0 0 0 2px rgba(255,255,255,.9), 0 0 8px rgba(255,255,255,.55); }.tl-tip { position: absolute; bottom: 22px; transform: translateX(-50%); background: #000; padding: 4px 10px; border-radius: 6px; font-size: 15px; white-space: nowrap; pointer-events: none; display: none; }.tl-dot:hover + .tl-tip, .tl-dot:hover .tl-tip, .tl-seg:hover .tl-tip { display: block; }.search-input { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 7px 11px; font-size: 16px; width: 170px; }.watermark { position: absolute; inset: 0; pointer-events: none; z-index: 5; display: flex; flex-wrap: wrap; align-content: center; justify-content: center; gap: 40px 60px; opacity: .12; overflow: hidden; }.watermark span { color: #fff; font-size: 24px; font-weight: 700; transform: rotate(-25deg); white-space: nowrap; }.ci-attach { max-width: 100%; border-radius: 6px; margin-top: 6px; border: 1px solid var(--line); display: block; }.attach-preview { position: absolute; bottom: 50px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,.8); padding: 5px 12px; border-radius: 8px; font-size: 15px; color: var(--accent-2); }.comment-input-bar { position: relative; z-index: 30; }.quick-anno-panel {
  position: absolute;
  left: 8px; bottom: calc(100% + 8px);
  width: 320px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 8px;
  display: flex; flex-direction: column;
  box-shadow: 0 14px 36px rgba(0,0,0,.5);
  z-index: 60;
}.quick-anno-panel .qa-scroll {
  max-height: min(55vh, 380px);
  overflow-y: scroll; overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: var(--accent) rgba(255,255,255,.08);
}.quick-anno-panel .qa-cols { columns: 2; column-gap: 6px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar { width: 6px; height: 6px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.08); border-radius: 3px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 3px; }.quick-anno-panel .qa-item {
  text-align: left; font-size: 15px; line-height: 1.35;
  padding: 8px 10px; border-radius: 8px;
  background: rgba(255,255,255,.04); color: var(--text);
  border: 1px solid transparent; cursor: pointer;
  width: 100%; box-sizing: border-box; display: block;
  break-inside: avoid; -webkit-column-break-inside: avoid;
  margin-bottom: 6px;
}.quick-anno-panel .qa-item:hover {
  background: rgba(255,126,179,.16); border-color: var(--accent);
  color: #fff;
}.quick-anno-panel .qa-edit-bar { column-span: all; display: flex; gap: 6px; padding: 0 0 8px; border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 6px; width: 100%; }.quick-anno-panel .qa-edit-bar button { flex: 1; font-size: 15px; padding: 5px 0; border-radius: 6px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text-2); cursor: pointer; }.quick-anno-panel .qa-edit-bar button:hover { border-color: var(--accent); color: var(--text); }.quick-anno-panel .qa-add-row { column-span: all; display: flex; gap: 6px; padding: 8px 0 0; border-top: 1px solid rgba(255,255,255,.08); margin-top: 6px; width: 100%; }.quick-anno-panel .qa-add-row input { flex: 1; min-width: 0; padding: 6px 8px; border-radius: 6px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); font-size: 15px; }.quick-anno-panel .qa-item { position: relative; padding-right: 24px; }.quick-anno-panel .qa-del { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; border-radius: 50%; border: none; background: rgba(255,255,255,.15); color: #fff; font-size: 15px; cursor: pointer; display: none; align-items: center; justify-content: center; }.quick-anno-panel.editing .qa-del { display: flex; }#cibQuickBtn.active { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }.comment-input-bar .attach-preview { bottom: calc(100% + 6px); white-space: nowrap; z-index: 10; }#tagInput, #attachBtn { display: none; }@mention { color: var(--accent); font-weight: 600; }.approve-badge { background: rgba(45,212,167,.15); color: var(--ok); font-size: 15px; padding: 3px 10px; border-radius: 10px; }.ver-pill.locked { border-color: var(--ok); color: var(--ok); }.hub-btn { width: calc(100% - 20px); margin: 8px 10px; background: var(--bg-3); color: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 10px; cursor: pointer; text-align: left; font-size: 16px; }.hub-btn:hover { border-color: var(--accent); color: #fff; }.project-hub {
  padding: 110px 36px 28px; overflow: hidden; height: 100%;
  position: relative; z-index: 0;
  background: #15131f;
}.project-hub::before {
  content: ''; position: absolute; inset: 0;
  background: url('/assets/bg/home.webp') no-repeat center 25% / cover;
  background-attachment: fixed;
  pointer-events: none; z-index: -2;
}.project-hub::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(21,19,31,0.82) 0%, rgba(21,19,31,0.45) 55%, rgba(21,19,31,0.25) 100%);
  pointer-events: none; z-index: -1;
}.project-hub > * { position: relative; z-index: 1; }.hub-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }.hub-head h1 { font-size: 26px; font-weight: 700; }.hub-head-actions { display: flex; align-items: center; gap: 10px; }.hub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 18px; }.hub-card { background: rgba(30,26,44,0.80); border: 1px solid var(--line); border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 10px; }.hub-card:hover { border-color: var(--accent); }.hc-top { display: flex; align-items: center; gap: 10px; }.hc-dot { width: 14px; height: 14px; border-radius: 4px; }.hc-top h3 { font-size: 19px; flex: 1; }.hc-cat { color: var(--text-3); font-size: 15px; }.proj-pid { color: var(--text-3); font-size: 15px; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; letter-spacing: .5px; }.hc-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; text-align: center; background: var(--bg-3); border-radius: 8px; padding: 12px 6px; }.hc-stats b { display: block; font-size: 22px; }.hc-stats span { font-size: 15px; color: var(--text-3); }.hc-members { display: flex; gap: 6px; flex-wrap: wrap; }.hc-open { margin-top: 6px; }.hub-widget-layer { position: relative; margin-top: 18px; min-height: 600px; }.hub-widget {
  position: absolute; top: 0; left: 0;
  display: flex; flex-direction: column;
  background: rgba(26,23,38,0.82); 
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px; overflow: hidden;
  backdrop-filter: blur(10px);
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  min-width: 180px; min-height: 48px;
}
/* JS 和接口尚未启动时先搭好首页三栏框架；随后用户保存的布局会以行内样式准确接管。 */
.hub-widget[data-wid="recent"] { left: 0; top: auto; bottom: 0; width: 32%; height: 323px; }
.hub-widget[data-wid="pending"] { left: 34%; top: auto; bottom: 0; width: 32%; height: 323px; }
.hub-widget[data-wid="activity"] { left: 68%; top: auto; bottom: 0; width: 32%; height: 323px; }
.hub-widget-content { width: 100%; height: 100%; overflow: auto; min-height: 0; }.hub-func-body { padding: 0; }.hub-func-body .hub-empty { padding: 28px 12px; font-size: 15px; }.hub-mini-list { display: flex; flex-direction: column; gap: 6px; padding: 10px; }.hub-mini-row {
  display: flex; align-items: center; gap: 8px; padding: 8px 10px;
  background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px; cursor: pointer; font-size: 15px; color: var(--text);
  transition: background .15s, border-color .15s;
}.hub-mini-row:hover { background: rgba(255,255,255,0.08); border-color: var(--accent); }.hub-mini-dot { width: 10px; height: 10px; border-radius: 3px; flex-shrink: 0; }.hub-mini-name { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.hub-mini-star { color: #ffcc00; font-size: 16px; }.hub-plan-card, .hub-account-card, .hub-support-card {
  padding: 14px; display: flex; flex-direction: column; gap: 10px; height: 100%;
}.hub-plan-name { font-size: 18px; font-weight: 700; color: #fff; }.hub-plan-price { font-size: 16px; color: var(--accent); }.hub-plan-features { margin: 0; padding-left: 16px; color: var(--text-2); font-size: 15px; line-height: 1.6; }.hub-account-name { font-size: 17px; font-weight: 700; color: #fff; }.hub-account-email, .hub-account-plan { font-size: 15px; color: var(--text-2); }.hub-mini-msg { padding: 8px 10px; background: rgba(255,255,255,0.04); border-radius: 8px; }.hub-mini-msg.unread { border-left: 3px solid var(--accent); background: rgba(255,126,179,0.08); }.hub-mini-title { font-size: 15px; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.hub-mini-time { font-size: 15px; color: var(--text-3); margin-top: 2px; }.hub-support-card p { margin: 0; font-size: 15px; color: var(--text-2); line-height: 1.5; }.hub-widget > .hw-head {
  display: flex; align-items: center; gap: 6px;
  padding: 7px 10px; cursor: grab;
  background: rgba(255,255,255,.05);
  border-bottom: 1px solid var(--line);
  user-select: none;
}.hub-widget > .hw-head .hw-grip { color: var(--text-3); font-size: 15px; cursor: grab; }.hub-widget > .hw-head .hw-title { flex: 1; font-size: 15px; font-weight: 600; color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.hub-widget > .hw-head .hw-btn { border: none; background: transparent; color: var(--text-2); font-size: 15px; line-height: 1; padding: 4px 6px; border-radius: 6px; cursor: pointer; }.hub-widget > .hw-head .hw-btn:hover { background: rgba(255,255,255,.12); color: var(--text); }.hub-widget > .hw-body { flex: 1; overflow: auto; padding: 10px; min-height: 0; }.hub-widget.collapsed > .hw-body { display: none; }.hub-widget.collapsed { height: auto !important; }.hub-widget .hw-resize { position: absolute; right: 0; bottom: 0; width: 16px; height: 16px; cursor: nwse-resize; background: linear-gradient(135deg, transparent 50%, var(--text-3) 50%); border-radius: 0 0 10px 0; }.hub-widget.dragging { opacity: .85; box-shadow: 0 14px 34px rgba(0,0,0,.45); z-index: 60; }.hub-create-body { display: flex; align-items: center; }.hub-shortcuts-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }.hub-shortcut { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.03); cursor: pointer; font-size: 15px; color: var(--text); transition: border-color .15s, background .15s; }.hub-shortcut:hover { border-color: var(--accent); background: rgba(255,126,179,.10); }.hub-shortcut .hs-ico { font-size: 17px; }.hub-shortcut .hs-del { margin-left: auto; color: var(--text-3); cursor: pointer; border: none; background: transparent; font-size: 15px; padding: 2px 4px; border-radius: 6px; }.hub-shortcut .hs-del:hover { color: var(--danger); background: rgba(255,255,255,.1); }.hub-shortcuts-actions { display: flex; gap: 8px; flex-wrap: wrap; }.hub-add-menu { position: fixed; z-index: 9999; background: var(--panel); border: 1px solid var(--line); border-radius: 10px; padding: 6px; box-shadow: 0 10px 28px rgba(0,0,0,.4); min-width: 190px; }.hub-add-menu button { display: block; width: 100%; text-align: left; border: none; background: transparent; color: var(--text-2); padding: 8px 10px; border-radius: 7px; cursor: pointer; font-size: 15px; }.hub-add-menu button:hover:not([disabled]) { background: rgba(255,126,179,.14); color: #fff; }.hub-add-menu button[disabled] { opacity: 1; cursor: not-allowed; color: #fff; background: rgba(255,126,179,.18); font-weight: 600; }.star-btn { background: none; border: none; color: #fff; font-size: 22px; cursor: pointer; }.star-btn:hover { color: #ffcc00; }.star-btn.sm { font-size: 20px; }.ws-push-btn { margin-left: 4px; flex-shrink: 0; }.pc-star { color: #ffcc00; margin-left: auto; }.hub-empty { color: var(--text-3); text-align: center; padding: 48px; grid-column: 1 / -1; font-size: 17px; }.project-workspace {
  padding: 22px 32px; height: 100%; display: flex; flex-direction: column; overflow: hidden;
  position: relative; z-index: 0;
  background: transparent;
}.project-workspace::before {
  content: ''; position: absolute; inset: 0;
  background: url('/assets/bg/project.webp') no-repeat center bottom;
  background-size: cover;
  pointer-events: none; z-index: -2;
}.project-workspace::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(21,19,31,0.88) 0%, rgba(21,19,31,0.55) 50%, rgba(21,19,31,0.30) 100%);
  pointer-events: none; z-index: -1;
}.project-workspace > * { position: relative; z-index: 1; }.ws-head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }.ws-title { display: flex; align-items: center; gap: 10px; }.ws-title h2 { font-size: 25px; }#wsName.editable-name {
  cursor: text;
  padding: 2px 8px;
  border-radius: 6px;
  border: 1px dashed transparent;
  transition: border-color .15s, background .15s;
}#wsName.editable-name:hover {
  border-color: var(--accent);
  background: rgba(255,126,179,.06);
}.ws-dot { width: 14px; height: 14px; border-radius: 4px; }.ws-cat { color: var(--text-3); font-size: 16px; }.ws-members { display: inline-flex; align-items: center; margin-left: 8px;
  padding: 3px 8px 3px 4px; border-radius: 999px;
  background: transparent; border: 1px solid transparent;
  transition: background .15s, border-color .15s, box-shadow .15s; cursor: default; }.ws-members:hover { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); box-shadow: 0 4px 14px rgba(0,0,0,.15); }.ws-member-avatars { display: flex; align-items: center; }.ws-member-avatars .p-avatar { width: 26px; height: 26px; border-radius: 50%; font-size: 15px; font-weight: 600; color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  border: 2px solid var(--bg); box-shadow: 0 2px 5px rgba(0,0,0,.25);
  margin-left: -10px; transition: transform .15s cubic-bezier(.34,1.56,.64,1), z-index 0s, box-shadow .15s; position: relative; }.ws-member-avatars .p-avatar:first-child { margin-left: 0; }.ws-member-avatars .p-avatar:hover { transform: translateY(-4px) scale(1.15); z-index: 10; box-shadow: 0 6px 14px rgba(0,0,0,.35); }.ws-member-more { width: 26px; height: 26px; border-radius: 50%; font-size: 15px; font-weight: 700; color: var(--text-2);
  display: inline-flex; align-items: center; justify-content: center; background: var(--bg-3);
  border: 2px solid var(--bg); box-shadow: 0 2px 5px rgba(0,0,0,.25);
  margin-left: -10px; }.ws-tabs { display: flex; gap: 6px; border-bottom: 1px solid var(--line); }.ws-tab { background: none; border: none; color: #fff; padding: 12px 18px; cursor: pointer; font-size: 17px; border-bottom: 2px solid transparent; }.ws-tab.active { color: var(--accent); border-bottom-color: var(--accent); }.ws-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }.ws-panel-head em { color: var(--accent); font-style: normal; }.ws-sub { margin-top: 28px; }.ws-sub h4 { margin-bottom: 12px; color: var(--text-2); font-size: 18px; }.media-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 16px; }.media-card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; position: relative; }.media-card:hover { border-color: var(--accent); }.mc-cover { width: 100%; aspect-ratio: 16 / 9; height: auto; object-fit: cover; background: #000; display: block; cursor: pointer; border-radius: 10px 10px 0 0; }.mc-cover:hover { filter: brightness(1.15); }.mc-cover.placeholder { display: flex; align-items: center; justify-content: center; font-size: 42px; color: var(--text-3); background: var(--bg-3); }.media-card .mc-cover.script-prev { display: block; align-items: stretch; justify-content: flex-start; text-align: left; background: #0e1220; color: #cdd6f4; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 15px; line-height: 1.4; padding: 6px 8px; overflow: hidden; }.media-card .mc-cover.script-prev .sp-inner { max-height: 98px; overflow: hidden; white-space: normal; }.mc-body { padding: 12px 16px 8px; }.mc-name { font-weight: 600; font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.mc-meta { color: var(--text-3); font-size: 15px; margin: 4px 0 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.mc-more {
  position: absolute; right: 10px; bottom: 10px; z-index: 3;
  width: 30px; height: 30px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; line-height: 1; letter-spacing: 1px; color: var(--text-1);
  background: rgba(20,16,32,.62); border: 1px solid rgba(255,255,255,.16);
  cursor: pointer; backdrop-filter: blur(4px); transition: background .12s ease, transform .12s ease;
}.mc-more:hover { background: rgba(124,58,237,.78); color: #fff; transform: scale(1.06); }.mc-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }.mc-badge { font-size: 15px; color: var(--text-2); background: var(--bg-3); padding: 4px 10px; border-radius: 8px; white-space: nowrap; flex-shrink: 0; }.mc-badge.warn { color: var(--warn); }.mc-foot .ghost-btn { padding: 5px 10px; font-size: 15px; white-space: nowrap; flex-shrink: 0; }.task-list { display: flex; flex-direction: column; gap: 10px; }.task-item { display: flex; align-items: center; gap: 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }.task-item.done { opacity: .5; }.task-item.done .tk-title { text-decoration: line-through; }.tk-check { width: 20px; height: 20px; }.tk-main { flex: 1; min-width: 0; }.tk-title { font-weight: 600; font-size: 17px; }.tk-detail { margin: 4px 0; color: var(--text-2); font-size: 15px; line-height: 1.5; white-space: pre-wrap; }.tk-meta { font-size: 15px; color: var(--text-3); }.tk-mode { padding: 2px 8px; border-radius: 6px; font-size: 15px; }.mode-or { background: rgba(79,124,255,.15); color: var(--accent); }.mode-and { background: rgba(255,149,0,.15); color: var(--warn); }.tk-del { color: var(--text-3); }.tk-del:hover { color: var(--danger); }.status-flow { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }.sf-pill { background: var(--bg-3); border-radius: 8px; padding: 6px 12px; font-size: 16px; }.flow-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }.flow-row input { flex: 1; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 8px 10px; }.rep-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 16px; margin-bottom: 26px; }.rep-card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 20px; text-align: center; }.rep-card b { font-size: 30px; display: block; }.rep-card span { color: var(--text-3); font-size: 15px; }.rep-card.warn b { color: var(--warn); }.report-body h4 { margin: 20px 0 12px; color: var(--text-2); font-size: 18px; }.rep-bars { display: flex; flex-direction: column; gap: 10px; }.rep-bar { display: flex; align-items: center; gap: 12px; }.rb-label { width: 140px; font-size: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.rb-label small { color: var(--text-3); font-size: 15px; margin-left: 4px; }.rb-track { flex: 1; background: var(--bg-3); border-radius: 6px; height: 16px; overflow: hidden; }.rb-track i { display: block; height: 100%; background: var(--accent); }.rep-bar b { width: 36px; text-align: right; font-size: 16px; }.rep-toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }.rep-tip { color: var(--text-3); font-size: 15px; }.rep-section { margin-bottom: 24px; }.rep-h3 { font-family: var(--font-cute); font-size: 19px; font-weight: 700; color: var(--text); margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }.rep-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; }.rep-info-line { display: flex; flex-wrap: nowrap; gap: 10px; overflow-x: auto; padding-bottom: 2px; }.rep-info-line .rep-kv {
  flex: 1 1 0;
  min-width: 0;
  max-width: none;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  background: var(--bg-2);
  border: 1px solid var(--line);
  border-radius: 8px;
}.rep-info-line .rep-kv span { font-size: 15px; color: var(--text-2); white-space: nowrap; }.rep-info-line .rep-kv b { font-size: 15px; color: var(--text); font-weight: 500; word-break: normal; }.rep-info-line .rep-kv select,
.rep-info-line .rep-kv input { flex: 1; min-width: 0; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 4px 7px; font-size: 15px; }.rep-info-line .rep-kv.kv-name,
.rep-info-line .rep-kv.kv-status,
.rep-info-line .rep-kv.kv-category,
.rep-info-line .rep-kv.kv-created,
.rep-info-line .rep-kv.kv-members,
.rep-info-line .rep-kv.kv-supplier { flex: 1 1 0; width: auto; }.rep-detail-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: stretch; margin-bottom: 16px; }.rep-detail-layout > .rep-box { display: flex; flex-direction: column; height: 100%; margin-bottom: 0; min-width: 0; }.rep-link-box .filter-select, .rep-link-box select { max-width: 100%; min-width: 0; }.rep-stat-box .rep-stat-row { align-items: stretch; }.rep-stat-box .rep-stat { padding: 12px 6px; }.rep-stat-box .rep-stat b { font-size: 24px; }.rep-stat-box .rep-stat span { font-size: 15px; margin-top: 5px; }.rep-link-box .rep-tip { margin: 0 0 10px; }.rep-two-col #pdTags,
.rep-two-col #pdNote { min-height: 72px; padding-top: 8px; }.rep-two-col #pdTags::placeholder,
.rep-two-col #pdNote::placeholder { line-height: 1.2; }.pd-edit-logo-btn {
  font-size: 15px;
  padding: 5px 12px;
  border-radius: 8px;
  border: none;
  background: linear-gradient(135deg, #ff7eb3 0%, #a855f7 100%);
  color: #fff;
  cursor: pointer;
  transition: filter .15s;
}.pd-edit-logo-btn:hover { filter: brightness(1.1); }
.pd-brand-controls { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.pd-logo-mode { display:inline-flex; align-items:center; gap:8px; padding:4px 8px; border:1px solid var(--line); border-radius:8px; background:var(--bg-2); }
.pd-logo-mode label { display:inline-flex; align-items:center; gap:4px; margin:0; color:var(--text-2); font-size:15px; cursor:pointer; white-space:nowrap; }
.pd-logo-mode input { width:15px; height:15px; margin:0; accent-color:var(--accent); cursor:pointer; }
.pd-logo-mode input:disabled { cursor:not-allowed; opacity:.5; }
.pd-edit-color-btn { background:var(--bg-2); border:1px solid rgba(255,126,179,.35); color:var(--text); }
.pd-color-picker { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
@media (max-width: 860px) {.rep-detail-layout { grid-template-columns: 1fr; } }.rep-stat-row { display: flex; flex-wrap: nowrap; gap: 8px; }.rep-stat-row .rep-stat { flex: 1; min-width: 0; padding: 10px 4px; text-align: center; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 10px; }.rep-stat-row .rep-stat b { display: block; font-size: 20px; color: var(--accent); font-weight: 700; white-space: nowrap; }.rep-stat-row .rep-stat span { display: block; font-size: 15px; color: var(--text-3); margin-top: 4px; white-space: nowrap; }.rep-tags { display: flex; flex-wrap: wrap; gap: 8px; }.rep-tag { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; background: rgba(79,124,255,.15); color: var(--accent); border-radius: 999px; font-size: 15px; }.rep-note { padding: 10px 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; font-size: 15px; color: var(--text); min-height: 40px; }.rep-sched { display: flex; flex-direction: column; gap: 8px; }.rep-node-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 8px 10px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; }.rep-node-row .np-form-input { flex: 1 1 120px; min-width: 110px; }.rep-node-row .rep-node-name { flex: 2 1 160px; min-width: 140px; }.rep-node-row .rep-node-time {
  flex: 0 1 200px;
  min-width: 150px;
  max-width: 210px;
  color-scheme: dark;
  position: relative;
}.rep-node-row .rep-node-time::-webkit-calendar-picker-indicator {
  cursor: pointer;
  opacity: .85;
  filter: invert(0.85);
}.rep-node-row .rep-node-remind { flex: 0 0 auto; min-width: 130px; }.rep-node-custom { display: inline-flex; gap: 6px; align-items: center; }.rep-node-custom .rep-node-amt { width: 64px; flex: 0 0 auto; }.rep-node-custom .rep-node-unit { width: 78px; flex: 0 0 auto; }.rep-node-method { display: inline-flex; align-items: center; gap: 4px; font-size: 15px; color: var(--text-2); white-space: nowrap; cursor: pointer; }.rep-node-count { font-size: 15px; color: var(--text-3); }.rep-node-card { padding: 10px 12px; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; }.rep-node-head { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }.rep-node-head .rep-node-name { flex: 1 1 160px; min-width: 140px; }.rep-node-head .rep-node-time { flex: 0 1 200px; min-width: 150px; max-width: 210px; color-scheme: dark; position: relative; }.rep-node-head .rep-node-time::-webkit-calendar-picker-indicator { cursor: pointer; opacity: .85; filter: invert(0.85); }.rep-node-reminds { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }.rep-rm-list { display: flex; flex-direction: column; gap: 6px; }.rep-rm-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 6px 8px; background: rgba(0,0,0,.18); border: 1px solid var(--line); border-radius: 8px; font-size: 15px; }.rep-rm-row .filter-select { flex: 0 0 auto; min-width: 130px; }.rep-rm-custom { display: inline-flex; gap: 6px; align-items: center; }.rep-rm-custom .rep-rm-amt { width: 64px; flex: 0 0 auto; }.rep-rm-row .rep-node-method { display: inline-flex; align-items: center; gap: 4px; font-size: 15px; color: var(--text-2); white-space: nowrap; cursor: pointer; }.rep-add-node { display: flex; flex-direction: column; gap: 10px; }.rep-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 10px; }.rep-actions.sticky { position: sticky; bottom: 0; background: rgba(21,19,31,.92); padding: 16px 0; border-top: 1px solid var(--line); margin-top: 40px; z-index: 5; text-align: center; }.rep-actions.sticky .primary-btn { margin: 0 auto; display: inline-block; }.rep-danger { background: rgba(255,59,48,.06); border: 1px dashed rgba(255,59,48,.35); border-radius: 10px; padding: 14px; }.rep-box { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,126,179,.32); border-radius: 12px; padding: 16px 18px; margin-bottom: 16px; box-shadow: 0 2px 16px rgba(168,85,247,.12), inset 0 1px 0 rgba(255,143,199,.08); }.rep-box-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }.rep-box-head .rep-h3 { margin: 0; border: none; padding: 0 0 0 14px; font-family: var(--font-cute); font-size: 20px; font-weight: 700; color: var(--text); position: relative; }.rep-box-head .rep-h3::before { content: ''; position: absolute; left: 0; top: 1px; bottom: 1px; width: 4px; border-radius: 4px; background: var(--grad-accent); }.rep-two-col #pdTags { height: 72px; }.rep-two-col #pdNote { min-height: 72px; }.rep-stat-compact .rep-stat { padding: 8px 6px; }.rep-stat-compact .rep-stat b { font-size: 22px; }.rep-layout-wide-link { grid-template-columns: 1fr; }.rep-link-layout { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }.rep-link-left { flex: 1 1 0; min-width: 280px; }.rep-link-right { flex: 1 1 0; min-width: 280px; display: flex; flex-direction: column; gap: 14px; }.rep-link-right .rep-children, .rep-link-right .rep-blacklist { margin-top: 0; border-top: none; padding-top: 0; }.rep-layout-wide-link .rep-box .rep-tip { font-size: 15px; line-height: 1.5; margin: 0 0 10px; white-space: normal; }.rep-link-info span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.rep-stat-compact .rep-stat:nth-child(-n+4) { padding: 6px 2px; }.rep-stat-compact .rep-stat:nth-child(-n+4) b { font-size: 22px; }.rep-stat-compact .rep-stat:nth-child(-n+4) span { font-size: 15px; margin-top: 3px; }@media (max-width: 1200px) {.rep-stat-row .rep-stat:nth-child(-n+4) b { font-size: 15px; }.rep-stat-row .rep-stat:nth-child(-n+4) span { font-size: 15px; }
}@media (max-width: 1200px) {.rep-stat-row .rep-stat:nth-child(-n+4) b { font-size: 16px; }.rep-stat-row .rep-stat:nth-child(-n+4) span { font-size: 15px; }
}.rep-gantt-tools { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }.rep-gantt-tools-inline { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; }.rep-zoom-btn { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); font-size: 15px; padding: 0 10px; height: 30px; border-radius: 8px; cursor: pointer; line-height: 1; }.rep-zoom-btn:hover { border-color: var(--accent); color: var(--accent); }.rep-gantt-zoom-label { font-size: 15px; color: var(--text-2); min-width: 54px; text-align: center; }.rep-gantt-tip { font-size: 15px; color: var(--text-3); margin-left: auto; }.rep-gantt-scroll { overflow-x: auto; cursor: grab; user-select: none; border: 1px solid var(--line); border-radius: 12px; background: rgba(0,0,0,.12); }.rep-gantt-scroll::-webkit-scrollbar { height: 8px; }.rep-gantt-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.15); border-radius: 8px; }.rep-gantt { display: flex; flex-direction: column; min-width: 100%; }.rep-gantt-head { display: flex; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.04); font-size: 15px; color: var(--text-3); position: sticky; top: 0; z-index: 2; }.rep-gantt-head-label { width: 140px; flex: 0 0 140px; padding: 10px 12px; display: flex; align-items: center; font-weight: 600; }.rep-gantt-scale { display: flex; }.rep-gantt-cell { flex: 0 0 auto; text-align: center; padding: 8px 0; border-left: 1px solid rgba(255,255,255,.06); box-sizing: border-box; font-size: 15px; line-height: 1.35; min-height: 2.8em; display: flex; flex-direction: column; justify-content: center; white-space: nowrap; }.rep-gantt-cell small { display: block; font-size: 15px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.rep-gantt-cell.today { color: #5eead4; font-weight: 700; }.rep-gantt-body { position: relative; }.rep-gantt-today { position: absolute; top: 0; bottom: 0; width: 2px; background: rgba(94,234,212,.55); z-index: 1; pointer-events: none; box-shadow: 0 0 8px rgba(94,234,212,.4); }.rep-gantt-today-star { position: absolute; top: -7px; left: -7px; font-size: 15px; }.rep-gantt-row { display: flex; align-items: center; min-height: 48px; position: relative; }.rep-gantt-row:nth-child(even) { background: rgba(255,255,255,.02); }.rep-gantt-row .rep-gantt-label { width: 140px; flex: 0 0 140px; padding: 8px 12px; display: flex; flex-direction: column; justify-content: center; gap: 2px; position: sticky; left: 0; background: var(--bg-2); z-index: 3; border-right: 1px solid var(--line); }.rep-gantt-name { font-size: 15px; color: var(--text); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.rep-gantt-range { font-size: 15px; color: var(--text-3); white-space: nowrap; }.rep-gantt-label-editable { cursor: pointer; }.rep-gantt-label-editable:hover .rep-gantt-name { color: var(--accent); }.rep-gantt-track { position: relative; height: 28px; border-bottom: 1px solid rgba(255,255,255,.04); }.rep-gantt-bar { position: absolute; top: 3px; height: 22px; border-radius: 999px; box-shadow: 0 2px 8px rgba(0,0,0,.25); display: flex; align-items: center; justify-content: center; font-size: 16px; min-width: 24px; cursor: default; white-space: nowrap; overflow: hidden; padding: 0 6px; }.rep-gantt-bar-marker { width: 14px; min-width: 14px; height: 14px; border-radius: 50%; top: 7px; transform: translateX(-50%); padding: 0; }.rep-gantt-bar-edit, .rep-gantt-bar-del { flex: 0 0 auto; width: 16px; height: 16px; border-radius: 50%; border: none; background: rgba(0,0,0,.45); color: #fff; font-size: 15px; line-height: 1; cursor: pointer; display: none; align-items: center; justify-content: center; margin-left: 4px; }.rep-gantt-bar:hover .rep-gantt-bar-edit, .rep-gantt-bar:hover .rep-gantt-bar-del { display: flex; }.rep-gantt-empty { padding: 22px; text-align: center; color: var(--text-3); font-size: 15px; }.rep-add-node-line1 { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }.rep-add-node-line1 .rep-node-name { flex: 0 1 150px; min-width: 120px; }.rep-node-time-wrap { flex: 0 1 230px; min-width: 180px; max-width: 260px; display: flex; align-items: center; gap: 4px; position: relative; }.rep-node-time-wrap .rep-node-time { flex: 1; min-width: 0; color-scheme: dark; padding-right: 26px; font-size: 17px; }.rep-node-time-wrap .rep-time-icon { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: 15px; pointer-events: none; line-height: 1; }.rep-node-time-wrap:has(.ghost-btn) .rep-time-icon { right: 34px; }.rep-node-field-label { font-size: 15px; color: var(--text-2); white-space: nowrap; }.rep-node-color { width: 34px; height: 34px; border-radius: 50%; border: 2px solid rgba(255,255,255,.85); cursor: pointer; flex: 0 0 auto; padding: 0; box-shadow: 0 2px 6px rgba(0,0,0,.3); }.rep-color-pop { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; padding: 8px; background: rgba(0,0,0,.32); border: 1px solid var(--line); border-radius: 10px; }.rep-color-dot { width: 22px; height: 22px; border-radius: 50%; border: 1px solid rgba(255,255,255,.45); cursor: pointer; padding: 0; }.rep-color-dot:hover { transform: scale(1.12); }.rep-edit-node-modal { width: 420px; max-width: 90vw; }.rep-edit-node-modal .rep-h3 { margin-bottom: 14px; }.rep-edit-node-row { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }.rep-edit-node-row > label { width: 70px; font-size: 15px; color: var(--text-2); flex: 0 0 auto; }.rep-edit-node-row .np-form-input { flex: 1; min-width: 0; }.rep-edit-node-modal .rep-rm-list-inline { flex: 1; min-width: 0; }.rep-edit-node-modal .rep-actions { display: flex; justify-content: flex-end; gap: 8px; }.rep-add-node-line2 { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; margin-top: 10px; }.rep-add-node-label { font-size: 15px; color: var(--text-2); padding-top: 6px; white-space: nowrap; }.rep-rm-list-inline { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; flex-direction: row !important; }.rep-rm-list-inline .rep-rm-row { flex: 0 0 auto; }.rep-two-col { display: flex; gap: 16px; flex-wrap: wrap; }.rep-two-col .rep-col { flex: 1 1 260px; min-width: 240px; }.rep-two-col .rep-col .rep-h3 { margin-bottom: 0; }.rep-col-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }.rep-col-head .ghost-btn { font-size: 15px; padding: 4px 10px; }.dtp-wrap { width: 280px; padding: 14px; }.dtp-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }.dtp-month { font-size: 16px; font-weight: 600; color: var(--text); }.dtp-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }.dtp-weekdays span { text-align: center; font-size: 15px; color: var(--text-3); }.dtp-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 12px; }.dtp-day { aspect-ratio: 1; border: none; border-radius: 8px; background: var(--bg-3); color: var(--text-2); font-size: 15px; cursor: pointer; }.dtp-day:hover { background: var(--accent-soft); color: var(--text); }.dtp-day.other { color: var(--text-3); background: transparent; }.dtp-day.selected { background: var(--accent); color: #fff; }.dtp-time { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 12px; font-size: 15px; color: var(--text-2); }.dtp-time input { width: 60px; text-align: center; background: var(--bg-3); border: 1px solid var(--line); border-radius: 6px; color: var(--text); padding: 4px; font-size: 15px; }.dtp-actions { display: flex; justify-content: flex-end; gap: 8px; }.dtp-popover { position: absolute; z-index: 1300; width: 280px; padding: 14px; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }.dtp-popover .dtp-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }.dtp-popover .dtp-month { font-size: 16px; font-weight: 600; color: var(--text); }.dtp-popover .dtp-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }.dtp-popover .dtp-weekdays span { text-align: center; font-size: 15px; color: var(--text-3); }.dtp-popover .dtp-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 12px; }.dtp-popover .dtp-day { aspect-ratio: 1; border: none; border-radius: 8px; background: var(--bg-3); color: var(--text-2); font-size: 15px; cursor: pointer; }.dtp-popover .dtp-day:hover { background: var(--accent-soft); color: var(--text); }.dtp-popover .dtp-day.other { color: var(--text-3); background: transparent; }.dtp-popover .dtp-day.selected { background: var(--accent); color: #fff; }.dtp-popover .dtp-time { display: flex; align-items: center; justify-content: center; gap: 6px; margin-bottom: 12px; font-size: 15px; color: var(--text-2); }.dtp-popover .dtp-time input { width: 44px; text-align: center; background: var(--bg-3); border: 1px solid var(--line); border-radius: 6px; color: var(--text); padding: 4px; font-size: 15px; }.dtp-popover .dtp-actions { display: flex; justify-content: flex-end; gap: 8px; }.rep-act-filters { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }.rep-act-cats { display: flex; align-items: center; gap: 6px; }.rep-act-cats-label { font-size: 15px; color: var(--text-2); white-space: nowrap; }.rep-act-checks { display: flex; flex-direction: row; flex-wrap: wrap; gap: 8px; align-items: center; }.rep-act-check { display: flex; align-items: center; gap: 5px; font-size: 15px; color: var(--text-2); cursor: pointer; }.rep-act-check input { margin: 0; accent-color: var(--accent); width: 16px; height: 16px; }.rep-tl-node-time { font-size: 15px; color: var(--ok); background: rgba(94,234,212,.10); padding: 2px 6px; border-radius: 4px; white-space: nowrap; }.rep-tl-text .act-actor { color: #ff8fc7; font-weight: 700; }.rep-tl-text .act-file { color: #c084fc; font-weight: 600; }.rep-kv { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; }.rep-kv span { font-size: 15px; color: var(--text-3); }.rep-kv b { font-size: 15px; color: var(--text); font-weight: 500; word-break: break-all; }.rep-stat-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }.rep-stat { padding: 14px 10px; text-align: center; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; }.rep-stat b { display: block; font-size: 24px; color: var(--accent); font-weight: 700; }.rep-stat span { display: block; font-size: 15px; color: var(--text-3); margin-top: 4px; }.rep-stat.full { grid-column: 1 / -1; }.rep-link-card { display: flex; align-items: center; gap: 12px; padding: 14px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; flex-wrap: wrap; }.rep-link-card.empty { border-style: dashed; }.rep-link-icon { font-size: 24px; }.rep-link-info { flex: 1 1 200px; display: flex; flex-direction: column; gap: 3px; }.rep-link-info b { font-size: 15px; color: var(--text); }.rep-link-info span { font-size: 15px; color: var(--text-3); }.rep-children { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }.rep-children-head { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }.rep-children-head b { font-size: 15px; color: var(--text); }.rep-children-hint { font-size: 15px; color: var(--text-3); }.rep-children-list { display: flex; flex-direction: column; gap: 8px; }.rep-child-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; flex-wrap: wrap; }.rep-child-icon { font-size: 16px; }.rep-child-name { flex: 1 1 auto; font-size: 15px; color: var(--text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.rep-child-tag { font-size: 15px; padding: 1px 8px; border-radius: 999px; background: rgba(70,200,120,.16); color: #2faf6a; }.rep-child-tag.blacklisted { background: rgba(230,80,80,.16); color: #e05656; }.rep-empty-sm { font-size: 15px; color: var(--text-3); padding: 6px 2px; }.rep-blacklist-box { margin-top: 14px; }.rep-blacklist-list { display: flex; flex-direction: column; gap: 8px; }.rep-blk-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; }.rep-blk-name { flex: 1 1 auto; font-size: 15px; color: var(--text); }.pa-targets { margin-top: 12px; border-top: 1px dashed var(--line); padding-top: 10px; }.pa-targets-head { font-size: 15px; color: var(--text-3); margin-bottom: 8px; line-height: 1.4; }.pa-targets-list { display: flex; flex-direction: column; gap: 6px; max-height: 180px; overflow: auto; }.pa-target { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--text); cursor: pointer; }.pa-auto { font-size: 15px; padding: 0 6px; border-radius: 999px; background: rgba(120,140,255,.18); color: #7c8cff; }.rep-timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }.rep-timeline li { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; font-size: 15px; flex-wrap: wrap; }.rep-tl-time { color: var(--text-3); font-size: 15px; flex: 0 0 auto; }.rep-tl-actor { color: var(--accent); font-weight: 600; flex: 0 0 auto; }.rep-tl-text { color: var(--text); flex: 1 1 200px; }.rep-members { display: flex; flex-direction: column; gap: 10px; }.rep-member { display: flex; align-items: center; gap: 12px; padding: 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; }.rep-mem-avatar { width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 600; font-size: 16px; flex: 0 0 auto; }.rep-mem-info { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }.rep-mem-info b { font-size: 15px; color: var(--text); display: flex; align-items: center; gap: 6px; }.rep-mem-info span { font-size: 15px; color: var(--text-3); }.rep-mem-tag { font-size: 15px; padding: 1px 6px; border-radius: 999px; background: rgba(255, 200, 80, 0.18); color: #d4a017; font-weight: 500; }.rep-mem-tag.owner { background: rgba(255, 200, 80, 0.2); }.rep-mem-actions { display: flex; gap: 6px; flex: 0 0 auto; }.rep-add-member { margin-top: 16px; padding: 14px; background: var(--bg-2); border: 1px dashed var(--line); border-radius: 10px; }.rep-add-member h4 { margin: 0 0 10px; font-size: 15px; color: var(--text-2); }.rep-add-row { display: flex; gap: 8px; flex-wrap: wrap; }.rep-add-row input { flex: 1 1 200px; }.rep-add-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 10px; }.rep-add-cols-3 { grid-template-columns: 1fr 1fr 1fr; }.rep-add-col { min-width: 0; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 10px; padding: 12px; }.rep-add-col-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }.rep-add-col-title { font-size: 15px; color: var(--text-2); font-weight: 600; }.rep-team-confirm { margin: 0; }.rep-member-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }.rep-member-list-col { min-width: 0; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }.rep-member-add-col { min-width: 0; background: rgba(255,255,255,.05); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }.rep-member-add-col .rep-add-cols { display: flex; flex-direction: column; gap: 14px; }.rep-member-add-col .rep-h3 { margin-bottom: 10px; }.rep-member-list-head { margin-bottom: 10px; }.rep-member-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; font-size: 15px; color: var(--text-3); }.rep-page-size { display: inline-flex; align-items: center; gap: 6px; }.rep-pagination { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; gap: 6px; margin: 6px 0 0; font-size: 15px; color: var(--text-3); white-space: nowrap; padding: 0 6px; }
.rep-pagination .pg-size { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.rep-pagination .pg-size-sel { padding: 2px 6px; }
.rep-pagination .pg-info { white-space: nowrap; }.rep-pagination button:disabled { opacity: .4; cursor: not-allowed; }@media (max-width: 1100px) {.rep-member-layout { grid-template-columns: 1fr; } }.rep-add-col .bm-row { flex-wrap: nowrap; align-items: center; }.rep-mem-role-toggle { display: inline-flex; gap: 4px; flex: 0 0 auto; margin-left: 8px; }.rep-mem-role-toggle[hidden] { display: none; }.rep-mem-role-toggle button { flex: 0 0 auto; font-size: 15px; padding: 3px 8px; border-radius: 6px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text-2); cursor: pointer; white-space: nowrap; }.rep-mem-role-toggle button.on { background: var(--grad-accent); color: #fff; border-color: transparent; }.rep-team-confirm { margin-top: 0; width: auto; padding-left: 14px; padding-right: 14px; }.rep-add-col-head .rep-team-confirm { margin-left: auto; }.rep-add-col .bm-results { max-height: 260px; margin-top: 0; }.rep-add-search, .rep-add-link { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }.rep-add-link .filter-select { flex: 1 1 90px; min-width: 80px; }.invite-link-box { display: flex; gap: 8px; align-items: center; margin-top: 6px; }.invite-link-box .np-form-input { flex: 1; font-size: 16px; }.rep-mem-identity { margin-top: 4px; width: 100%; max-width: 200px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 3px 8px; font-size: 15px; }.rep-mem-identity:focus { border-color: var(--accent); outline: none; }.rep-mem-identity-text { display: inline-block; margin-top: 4px; font-size: 15px; color: var(--text-2); }@media (max-width: 980px) {.rep-add-cols-3 { grid-template-columns: 1fr; } }@media (max-width: 720px) {.rep-add-cols { grid-template-columns: 1fr; } }.rep-detail { display: flex; flex-direction: column; gap: 10px; }.rep-detail-row { display: grid; grid-template-columns: auto 1.2fr 0.8fr 2.4fr auto; gap: 12px; align-items: center; background: rgba(255,255,255,0.15); border: 1px solid var(--line); border-radius: 8px; padding: 9px 12px; font-size: 15px; }.rep-detail-row .rd-name { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.rep-detail-row .rd-ep { color: var(--accent); white-space: nowrap; }.rep-detail-row .rd-detail { color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.rep-detail-row .rd-total { color: var(--warn); font-weight: 600; white-space: nowrap; }.vis-select { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 8px 10px; font-size: 16px; }.ci-vis { font-size: 15px; color: var(--warn); background: rgba(255,149,0,.12); padding: 3px 8px; border-radius: 8px; }.ci-link { display: inline-block; margin-top: 6px; color: var(--accent); font-size: 15px; word-break: break-all; }.share-row { display: flex; align-items: center; gap: 14px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; font-size: 16px; }.share-row span:nth-child(2) { color: var(--accent); }.share-row span:nth-child(3) { color: var(--text-3); margin-left: auto; }.modal-actions.col { flex-direction: column; align-items: stretch; }.bm-results { display: flex; flex-direction: column; gap: 6px; max-height: 240px; overflow-y: auto; padding: 8px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; margin-top: 4px; }.bm-row { display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 8px; cursor: pointer; transition: border-color .15s; }.bm-row:hover { border-color: var(--accent); }.bm-row.on { border-color: var(--accent); background: rgba(255,126,179,.10); }.bm-row.bm-row-disabled { cursor: default; opacity: .55; background: var(--bg-2); }.bm-row.bm-row-disabled:hover { border-color: var(--line); }.bm-invited-label { font-size: 15px; color: var(--warn); white-space: nowrap; margin-left: auto; }.bm-avatar { width: 32px; height: 32px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-weight: 600; font-size: 15px; flex: 0 0 auto; }.bm-info { flex: 1 1 auto; display: flex; flex-direction: column; gap: 1px; min-width: 0; }.bm-info b { font-size: 15px; color: var(--text); }.bm-info span { font-size: 15px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.bm-info .bm-team { font-size: 15px; color: var(--text-3); }.bm-info .bm-team.same { color: #fbbf24; }.bm-empty { padding: 18px; color: var(--text-3); font-size: 15px; text-align: center; }.bm-pick-mark { color: var(--accent); font-size: 18px; opacity: 0; transition: opacity .15s; }.bm-row.on .bm-pick-mark { opacity: 1; }.rep-add-search { display: flex; gap: 8px; align-items: center; flex-wrap: nowrap; }.rep-add-search input { flex: 0 0 50%; min-width: 0; }.rep-add-search .filter-select { flex: 0 0 auto; }.rep-add-search #addMemBtn { margin-left: auto; }.hub-head { display: flex; align-items: center; justify-content: space-between; }.view-toggle { display: flex; gap: 4px; }.vt-btn { background: var(--bg-3); border: 1px solid var(--line); color: #fff; width: 34px; height: 34px; border-radius: 8px; cursor: pointer; font-size: 18px; }.vt-btn.active { border-color: var(--accent); color: #fff; }.hub-grid.list-mode { display: flex; flex-direction: column; gap: 10px; }.hub-card.starred { border-color: var(--accent-2); }.hc-row { display: flex; align-items: center; gap: 14px; width: 100%; }.hc-dot { width: 12px; height: 12px; border-radius: 50%; flex: 0 0 auto; }.hc-name { font-weight: 600; font-size: 17px; }.hc-cat { font-size: 15px; color: var(--text-3); }.hc-stat { margin-left: auto; font-size: 15px; color: var(--text-3); }.more-btn { font-size: 15px; }.member-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }.member-row .m-name { flex: 1; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 8px 10px; font-size: 16px; }.member-row .m-role { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 8px; font-size: 16px; }.invite-row { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }.invite-result { margin-bottom: 12px; }.invite-link-row { display: flex; gap: 10px; }.invite-link { flex: 1; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 8px 10px; font-size: 15px; }.invite-tip { color: var(--text-3); font-size: 15px; margin-top: 8px; line-height: 1.5; }.invite-list { display: flex; flex-direction: column; gap: 10px; }.invite-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }.ii-main { display: flex; align-items: center; gap: 12px; font-size: 15px; }.ii-role { font-weight: 600; color: var(--text); }.ii-status { padding: 2px 10px; border-radius: 10px; font-size: 15px; }.ii-status.pending { background: rgba(245,166,35,.15); color: var(--warn); }.ii-status.ok { background: rgba(52,199,89,.15); color: var(--ok); }.ii-time { color: var(--text-3); }.invite-accept { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; }.invite-accept label { font-size: 16px; color: var(--text-2); }.invite-accept input { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 10px; font-size: 16px; }.asset-tools { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.asset-tools .filter-select, .asset-tools .search-input.sm { font-size: 16px; padding: 6px 10px; }.type-filter-pills { display: flex; align-items: center; gap: 4px; }.tp-btn { background: transparent; border: 1px solid var(--line); color: var(--text-2); border-radius: 8px; padding: 5px 12px; font-size: 15px; cursor: pointer; transition: .15s; }.tp-btn:hover { border-color: var(--accent); color: var(--text); }.tp-btn.active { background: rgba(79,124,255,.18); border-color: var(--accent); color: #fff; }.media-grid.list-mode { display: flex; flex-direction: column; gap: 10px; overflow-x: hidden; }.global-search { position: relative; flex: 1; max-width: 460px; margin: 0 18px; display: flex; align-items: center; }.gs-ico { position: absolute; left: 12px; font-size: 16px; opacity: .6; pointer-events: none; }.gs-input { width: 100%; height: 36px; padding: 0 12px 0 34px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); font-size: 16px; }.gs-input::placeholder { color: var(--text-3); }.gs-input:focus { border-color: var(--accent-2); }.gs-panel { position: absolute; top: 44px; left: 0; right: 0; max-height: 72vh; overflow: auto; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); padding: 8px; z-index: 1200; }.gs-group-title { font-size: 15px; color: var(--text-3); padding: 8px 10px 4px; }.gs-item { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; border: none; background: transparent; color: var(--text); padding: 8px 10px; border-radius: 9px; cursor: pointer; font-size: 16px; }.gs-item:hover { background: var(--accent-soft); }.gs-item .gs-sub { font-size: 15px; color: var(--text-3); }.gs-item .gs-ico-mini { font-size: 17px; flex: 0 0 18px; text-align: center; }.gs-tag { display: inline-block; font-size: 15px; padding: 1px 7px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); margin-left: 6px; }.gs-empty { padding: 18px; text-align: center; color: var(--text-3); }.gs-loading { padding: 14px; text-align: center; color: var(--text-3); }.ws-assets-body { display: flex; gap: 16px; align-items: flex-start; min-height: 0; }.folder-tree { width: 224px; flex: 0 0 224px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px; padding: 10px; max-height: calc(100vh - 210px); overflow: auto; transition: width .2s, flex-basis .2s, padding .2s; }.folder-tree.collapsed { width: 44px; flex-basis: 44px; padding: 0; height: calc(100vh - 210px); }.folder-tree.collapsed .ft-head-title,
.folder-tree.collapsed .ft-head-actions #newRootFolderBtn,
.folder-tree.collapsed .ft-list { display: none; }.folder-tree.collapsed .ft-head { flex-direction: column; height: 100%; flex: 1; justify-content: center; align-items: center; padding: 0; }.folder-tree.collapsed #ftCollapseBtn { transform: rotate(180deg); width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 22px; border-radius: 0; border: none; background: transparent; }.folder-tree.collapsed #ftCollapseBtn:hover { background: rgba(255,255,255,0.08); }.ft-head { display: flex; align-items: center; justify-content: space-between; font-size: 15px; color: var(--text-2); padding: 2px 4px 8px; cursor: pointer; border-radius: 8px; transition: background .15s; }.ft-head:hover { background: rgba(255,255,255,0.05); }.ft-head-actions { display: flex; align-items: center; gap: 4px; }.ft-list { display: flex; flex-direction: column; gap: 2px; }.ft-item { display: flex; align-items: center; gap: 4px; padding: 5px 6px; border-radius: 8px; cursor: pointer; font-size: 16px; color: var(--text); user-select: none; }.ft-item:hover { background: var(--bg-3); }.ft-item.active { background: var(--accent-soft); color: var(--accent); }.ft-caret { width: 16px; text-align: center; font-size: 15px; color: var(--text-3); transition: transform .15s; flex: 0 0 16px; }.ft-caret.open { transform: rotate(90deg); }.ft-caret.leaf { visibility: hidden; }.ft-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.ft-actions { display: none; gap: 2px; }.ft-item:hover .ft-actions { display: flex; }.ft-actions button { border: none; background: transparent; color: var(--text-3); cursor: pointer; font-size: 15px; padding: 1px 4px; border-radius: 6px; }.ft-actions button:hover { background: var(--bg-3); color: var(--text); }.ft-root { font-weight: 600; }.asset-main { flex: 1; min-width: 0; }.tag-chip { display: inline-flex; align-items: center; gap: 5px; font-size: 15px; padding: 2px 9px; border-radius: 999px; margin: 3px 5px 0 0; color: #fff; line-height: 1.6; }.tag-dot { width: 8px; height: 8px; border-radius: 50%; display: inline-block; flex: 0 0 8px; }.mc-tags { display: flex; flex-wrap: wrap; margin-top: 4px; }.tag-pick { display: inline-flex; align-items: center; gap: 5px; font-size: 15px; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); cursor: pointer; margin: 4px 4px 0 0; }.tag-pick.on { border-color: var(--accent); background: var(--accent-soft); color: var(--accent); }.tag-pick .tag-dot { width: 9px; height: 9px; }@media (max-width: 860px) {.global-search { max-width: none; margin: 0 8px; }.ws-assets-body { flex-direction: column; }.folder-tree { width: 100%; flex: none; max-height: 220px; }
}.mc-row { display: flex; align-items: center; gap: 14px; }.mc-row .mc-cover { width: 76px; aspect-ratio: 16 / 9; height: auto; border-radius: 6px; object-fit: cover; flex: 0 0 auto; }.mc-row .mc-cover.placeholder { display: flex; align-items: center; justify-content: center; font-size: 22px; background: var(--bg-3); color: var(--text-3); }.mc-row .mc-body { flex: 1; min-width: 0; }.kind-badge { font-size: 15px; color: var(--text-3); border: 1px solid var(--line); border-radius: 5px; padding: 2px 6px; margin-left: 6px; }.media-img { display: block; background: #000; }.wave-canvas { width: 100%; height: min(45vh, 360px); min-height: 180px; background: var(--bg-3); border-radius: 8px; margin: 8px 0; cursor: crosshair; }.video-wave-track { margin: 0; background: rgba(10,8,16,.95); border: none; border-top: 1px solid rgba(255,255,255,.08); border-radius: 0; padding: 6px 16px 8px; overflow: hidden; }.video-wave-track .vwt-head { display: none; }.video-wave-track .vwt-canvas-wrap { width: 100%; overflow: hidden; border-radius: 8px; background: rgba(10,8,16,.9); }.video-wave-track .vwt-canvas { display: block; width: 100%; height: 52px; background: rgba(10,8,16,.9); border-radius: 8px; cursor: crosshair; }.video-wave-track.vwt-collapsed .vwt-canvas { display: none; }#audioEl { display: none; }.subtitle { position: absolute; bottom: 64px; left: 50%; transform: translateX(-50%); background: rgba(0,0,0,.7); color: #fff; padding: 6px 14px; border-radius: 8px; font-size: 18px; max-width: 80%; text-align: center; cursor: pointer; }.minimap { position: absolute; right: 12px; bottom: 12px; width: 160px; border: 1px solid var(--line); background: rgba(0,0,0,.6); border-radius: 6px; overflow: hidden; z-index: 4; }.minimap canvas { display: block; width: 160px; }.minimap-view { position: absolute; border: 2px solid var(--accent); box-sizing: border-box; pointer-events: none; }.img-zoom-tools {
  position: absolute; top: 12px; right: 12px; z-index: 12;
  display: flex; align-items: center; gap: 4px;
  background: rgba(20, 22, 28, .72); backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px;
  padding: 4px 6px; user-select: none; -webkit-user-select: none;
}.img-zoom-tools .zoom-btn {
  width: 30px; height: 30px; border: none; border-radius: 7px;
  background: rgba(255, 255, 255, .08); color: #fff; font-size: 18px; line-height: 1;
  cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background .15s, transform .1s; padding: 0;
}.img-zoom-tools .zoom-btn:hover { background: rgba(255, 255, 255, .2); }.img-zoom-tools .zoom-btn:active { transform: scale(.92); }.img-zoom-tools .zoom-btn.active { background: #4f7cff; color: #fff; }.img-zoom-tools .zoom-level {
  min-width: 48px; text-align: center; color: #e6e6e6; font-size: 15px;
  font-variant-numeric: tabular-nums; -webkit-user-select: none; user-select: none;
}.img-zoom-tools .zoom-level-input {
  width: 52px; text-align: center; color: #e6e6e6; font-size: 15px;
  font-variant-numeric: tabular-nums;
  background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 6px; padding: 4px 2px; outline: none; cursor: text;
}.img-zoom-tools .zoom-level-input:focus { border-color: #4f7cff; background: rgba(255, 255, 255, .14); }.img-zoom-tools .zoom-level-input::-webkit-outer-spin-button,
.img-zoom-tools .zoom-level-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }.img-zoom-tools .zoom-sep { width: 1px; height: 18px; background: rgba(255, 255, 255, .18); margin: 0 2px; }.controls.autohide, .anno-tools.autohide { opacity: 0; pointer-events: none; transition: opacity .3s; }.seek-wrap { position: relative; flex: 1; display: flex; align-items: center; }.seek-preview { position: absolute; bottom: 22px; transform: translateX(-50%); background: var(--bg-3); border: 1px solid var(--line); border-radius: 6px; padding: 4px; display: none; pointer-events: none; z-index: 5; }.seek-preview canvas { display: block; width: 160px; height: 90px; border-radius: 4px; }.seek-preview span { display: block; text-align: center; font-size: 15px; color: var(--text-2); margin-top: 2px; }.ws-status { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 6px 10px; font-size: 16px; }.ws-main { display: flex; gap: 0; flex: 1; min-height: 0; }.ws-content { flex: 1; min-width: 0; overflow: auto; padding: 22px 30px 38px 0; }.ws-side { width: 280px; flex: 0 0 280px; padding: 6px 18px 30px 18px; overflow: auto; align-self: stretch; background: rgba(0,0,0,0.32); border: 1px solid rgba(255,255,255,0.08); border-radius: 16px; margin: 12px 12px 12px 0; transition: width .2s, flex-basis .2s, padding .2s; }.ws-side.collapsed { width: 44px; flex-basis: 44px; padding: 0; height: 100%; }.ws-side.collapsed .project-info-body { display: none; }.ws-side.collapsed h4 { flex-direction: column; height: 100%; flex: 1; justify-content: center; align-items: center; margin: 0; cursor: pointer; }.ws-side.collapsed h4 span { display: none; }.ws-side.collapsed #wsSideCollapseBtn { transform: rotate(180deg); width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 22px; border-radius: 0; border: none; background: transparent; }.ws-side.collapsed #wsSideCollapseBtn:hover { background: rgba(255,255,255,0.08); }.ws-side h4 { margin: 0 0 16px; font-size: 18px; color: var(--text); display: flex; align-items: center; justify-content: space-between; gap: 8px; cursor: pointer; border-radius: 8px; padding: 4px 6px; transition: background .15s; }.ws-side h4:hover { background: rgba(255,255,255,0.05); }.project-info-body { display: flex; flex-direction: column; gap: 14px; }.info-row { display: flex; align-items: baseline; justify-content: space-between; font-size: 16px; }.info-row .label { color: var(--text-2); }.info-row .value { color: var(--text); max-width: 200px; text-align: right; word-break: break-word; }.info-row .value.muted { color: var(--text-3); }.info-row .value.warn { color: var(--warn); }.info-divider { height: 1px; background: var(--line); margin: 4px 0; }.media-table { width: 100%; max-width: 100%; border-collapse: collapse; font-size: 16px; table-layout: fixed; }.media-table th { position: relative; text-align: left; padding: 10px 14px; color: var(--text-2); font-weight: 500; border-bottom: 1px solid var(--line); white-space: nowrap; }.media-table td { padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }.media-table tr:hover td { background: rgba(79,124,255,.06); }.media-table th:not(:last-child)::after { content: ''; position: absolute; right: 0; top: 10%; bottom: 10%; width: 1px; background: linear-gradient(to bottom, transparent 0%, rgba(255,255,255,0.18) 45%, rgba(255,255,255,0.18) 55%, transparent 100%); pointer-events: none; }.media-table .mt-name-text { display: inline-block; max-width: 260px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }.media-table .mt-ellipsis { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.col-resizer { position: absolute; right: 0; top: 0; bottom: 0; width: 6px; cursor: col-resize; z-index: 2; }.col-resizer:hover, .col-resizer.dragging { background: rgba(79,124,255,.45); }.media-table .mt-thumb { width: 72px; aspect-ratio: 16 / 9; height: auto; border-radius: 6px; object-fit: cover; background: var(--bg-3); display: block; cursor: pointer; }.media-table .mt-thumb:hover { filter: brightness(1.15); }.media-table .mt-thumb.placeholder { display: flex; align-items: center; justify-content: center; font-size: 20px; color: var(--text-3); }.media-table .mt-name { display: flex; align-items: center; gap: 12px; min-width: 0; }.media-table .mt-name-text { font-weight: 600; }.media-table .mt-comment { display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; border-radius: 13px; background: var(--bg-3); color: var(--text-2); font-size: 15px; }.media-table .mt-comment.warn { background: rgba(245,166,35,.15); color: var(--warn); }.media-table .mt-status { font-size: 15px; padding: 3px 10px; border-radius: 10px; background: var(--bg-3); }.media-table .mt-status.待审阅 { color: var(--text-2); }.media-table .mt-status.审阅中 { color: var(--accent); }.media-table .mt-status.需修改 { color: var(--warn); }.media-table .mt-status.已通过 { color: var(--ok); }.media-table .mt-status.已定稿 { color: var(--ok); }.media-table th:last-child { width: 1%; white-space: nowrap; padding-left: 6px; padding-right: 6px; }.media-table td.mt-actions { text-align: center; width: 1%; white-space: nowrap; padding-left: 6px; padding-right: 6px; }.media-table .mt-act-btn { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line); background: var(--bg-3); color: var(--text-2); cursor: pointer; font-size: 20px; line-height: 1; transition: background .15s ease, color .15s ease, border-color .15s ease; }.media-table .mt-act-btn:hover { background: rgba(79,124,255,.16); color: var(--text); border-color: rgba(79,124,255,.45); }.admin-table, .boss-table, .file-find-table { table-layout: fixed; width: 100%; border-collapse: collapse; font-size: 16px; }.admin-table th, .boss-table th, .file-find-table th {
  text-align: left; padding: 10px 14px; color: var(--text-2); font-weight: 500;
  border-bottom: 1px solid var(--line); white-space: nowrap; position: relative;
}.admin-table td, .boss-table td, .file-find-table td {
  padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: middle; color: var(--text);
}.admin-table tr:hover td, .boss-table tr:hover td, .file-find-table tr:hover td { background: rgba(79,124,255,.06); }.admin-table th:not(:last-child)::after,
.boss-table th:not(:last-child)::after,
.file-find-table th:not(:last-child)::after,
.member-table th:not(:last-child)::after {
  content: ''; position: absolute; right: 0; top: 10%; bottom: 10%; width: 1px;
  background: linear-gradient(to bottom, transparent 0%, rgba(255,255,255,0.18) 45%, rgba(255,255,255,0.18) 55%, transparent 100%); pointer-events: none;
}.admin-table th, .admin-table td { border-right: none; }.admin-table th, .admin-table td { border-left: none; }.ci-tag { font-size: 15px; color: var(--accent); border: 1px solid var(--accent); border-radius: 5px; padding: 0 5px; margin-right: 4px; }.tag-input { width: 56px; flex-shrink: 0; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 3px 6px; font-size: 15px; }.row-between { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 0; font-size: 15px; }.auth-screen {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(1200px 600px at 50% -10%, rgba(79,124,255,.18), transparent), var(--bg);
}.site-compliance-footer {
  position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%);
  display: flex; align-items: center; justify-content: center; gap: 12px;
  max-width: calc(100vw - 32px); color: var(--text-3); font-size: 14px;
  white-space: nowrap; z-index: 72;
}.site-compliance-footer[hidden] { display: none !important; }
.site-compliance-footer-home {
  padding: 5px 12px; border-radius: 999px;
  background: rgba(12,10,24,.68); border: 1px solid rgba(255,126,179,.18);
  backdrop-filter: blur(8px); pointer-events: auto;
}
html:not(.mobile-ui) .site-compliance-footer-home {
  left: auto; right: 18px; transform: none;
}
.site-compliance-footer a { color: var(--text-2); text-decoration: none; }
.site-compliance-footer a:hover { color: var(--accent); text-decoration: underline; }
@media (max-width: 640px) {
  .site-compliance-footer { bottom: 8px; gap: 6px; flex-wrap: wrap; white-space: normal; width: calc(100vw - 24px); }
}.auth-card {
  width: 400px; max-width: 92vw;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 16px;
  padding: 32px 30px; box-shadow: var(--shadow);
}.auth-brand { display: flex; justify-content: center; margin-bottom: 16px; }.auth-logo-img { height: 64px; width: auto; display: block; }.auth-logo-text-img { height: 36px; width: auto; display: block; margin-left: 12px; }.auth-slogan { font-family: var(--font-cute); font-size: 19px; color: var(--text-2); margin-bottom: 14px; letter-spacing: .5px; }.auth-hint { background: rgba(79,124,255,.12); border: 1px solid var(--accent); color: var(--text); font-size: 15px; padding: 10px 12px; border-radius: 8px; margin-bottom: 14px; }.auth-tabs { display: flex; gap: 8px; margin-bottom: 18px; }.auth-tab {
  flex: 1; padding: 10px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text-2);
  border-radius: 8px; cursor: pointer; font-size: 16px;
}.auth-tab.active { background: var(--grad-accent); border-color: transparent; color: #fff; }.auth-form { display: flex; flex-direction: column; gap: 12px; }.auth-form input {
  background: var(--bg-3); border: 1px solid var(--line); color: var(--text);
  border-radius: 8px; padding: 12px 14px; font-size: 17px; outline: none;
}.auth-form input:focus { border-color: var(--accent); }.auth-form .block, .primary-btn.block { width: 100%; }.auth-err { color: var(--danger); font-size: 15px; min-height: 16px; }.auth-foot { margin-top: 16px; font-size: 15px; color: var(--text-3); text-align: center; }.user-chip { position: relative; display: flex; align-items: center; gap: 8px; cursor: pointer; }.user-menu {
  position: absolute; top: 120%; right: 0; z-index: 1001;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px;
  box-shadow: var(--shadow); padding: 8px; min-width: 180px;
}.user-menu button {
  display: block; width: 100%; text-align: left; padding: 10px 12px;
  background: transparent; border: none; color: var(--text); border-radius: 7px; cursor: pointer; font-size: 16px;
}.user-menu button:hover { background: var(--bg-3); }.user-menu button.danger { color: var(--danger); }.notif-wrap { position: relative; }.notif-bell {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--line);
  background: var(--bg-3); cursor: pointer; font-size: 20px; transition: .15s;
}.notif-bell:hover { border-color: var(--accent); transform: rotate(-8deg); }.notif-badge {
  position: absolute; top: -4px; right: -4px; min-width: 18px; height: 18px; padding: 0 4px;
  border-radius: 999px; background: var(--danger); color: #fff; font-size: 15px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 0 0 2px var(--bg-1);
}.notif-panel {
  position: absolute; top: 120%; right: 0; z-index: 1001; width: 320px; max-height: 420px; overflow-y: auto;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 14px;
  box-shadow: var(--shadow); padding: 10px;
}.notif-panel-head { display: flex; align-items: center; justify-content: space-between; padding: 2px 4px 10px; font-size: 16px; font-weight: 600; }.notif-readall { background: transparent; border: none; color: var(--accent); cursor: pointer; font-size: 15px; }.notif-readall:hover { text-decoration: underline; }.notif-list { display: flex; flex-direction: column; gap: 10px; }.notif-item { padding: 11px 12px; border-radius: 11px; background:linear-gradient(145deg,rgba(72,45,88,.74),rgba(37,31,56,.94)); cursor: pointer; transition: .12s; border:1px solid rgba(205,120,220,.32); box-shadow:inset 0 1px 0 rgba(255,255,255,.025); }.notif-item:hover { border-color:rgba(238,117,202,.72); transform:translateY(-1px); }.notif-item.unread { background:linear-gradient(145deg,rgba(102,53,91,.82),rgba(49,33,62,.96)); border-color:rgba(255,126,179,.58); }.notif-item-title { font-size: 15px; font-weight: 600; color:#f3dcff; margin-bottom: 4px; }.notif-item-body { font-size: 15px; color:#d2c6df; line-height:1.55; }.notif-item-time { font-size: 15px; color:#968aa7; margin-top: 5px; }.notif-actions { display: flex; gap: 8px; margin-top: 9px; }.notif-actions button { border-radius:7px; padding:5px 14px; font-size:15px; cursor:pointer; }.notif-actions .notif-accept,.notif-actions .notif-team-accept { border:1px solid rgba(255,255,255,.13); background:linear-gradient(135deg,#ff78b8,#9c5cff); color:#fff; font-weight:600; box-shadow:0 5px 14px rgba(159,74,202,.24); }.notif-actions .notif-reject,.notif-actions .notif-team-reject { background:rgba(31,27,45,.82); color:#d8cedf; border:1px solid rgba(190,166,208,.3); }.notif-actions .notif-appeal { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; font-weight: 600; border:0; }.notif-invite-result { margin-top:8px; padding-top:7px; border-top:1px solid rgba(210,175,223,.2); font-size:15px; color:#a99cb8; }.notif-invite-result.accepted { color:#d8b7f4; }.notif-invite-result.rejected { color:#998fa6; }.notif-empty { padding: 28px 10px; text-align: center; color: var(--text-3); font-size: 15px; }.acct-section { border-top: 1px solid var(--line); padding: 16px 0; }.acct-section h4 { margin: 0 0 12px; font-size: 16px; color: var(--text-2); }.acct-section label { display: block; font-size: 15px; color: var(--text-3); margin: 10px 0 5px; }.acct-section input { width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 10px 12px; font-size: 16px; }.usage-bar { display: flex; align-items: center; gap: 12px; font-size: 15px; margin: 8px 0; color: var(--text-2); }.usage-bar > span { width: 40px; flex: none; }.usage-bar .bar { flex: 1; height: 10px; background: var(--bg-3); border-radius: 6px; overflow: hidden; }.usage-bar .bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }.usage-bar em { font-style: normal; width: 110px; text-align: right; color: var(--text); }.plan-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }.plan-card { background: var(--bg-3); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }.plan-card.active { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent) inset; }.plan-name { font-weight: 700; font-size: 17px; }.plan-price { color: var(--accent); font-size: 16px; margin: 5px 0 10px; }.plan-card ul { margin: 0 0 12px; padding-left: 18px; font-size: 15px; color: var(--text-2); }.plan-card li { margin: 4px 0; }.plan-current { font-size: 15px; color: var(--ok); text-align: center; padding: 8px; border: 1px dashed var(--ok); border-radius: 8px; }.plan-quota { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin: 4px 0 12px; }.plan-quota div { background: var(--panel); border: 1px solid var(--line); border-radius: 8px; padding: 8px 6px; text-align: center; }.plan-quota b { display: block; font-size: 18px; color: var(--accent); line-height: 1.2; }.plan-quota span { font-size: 15px; color: var(--text-3); }.plan-quota div.full { grid-column: 1 / -1; }#buyPlanView::before { background: url('/assets/bg/member.webp') no-repeat center top / cover !important; }#buyPlanView .admin-content { padding: 16px 36px 60px; }#buyPlanContent {
  padding: 16px 36px 60px;
  max-width: none;       
  width: 100%;
  margin: 0;
}.bp-cycle-bar {
  display: flex;
  justify-content: center;
  padding: 2px 4px 14px;
  margin-top: 80px;   
}.bp-hero-spacer {
  
  height: 260px;
}.bp-hero-glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(56px);
  pointer-events: none;
  opacity: .42;
}.bp-hero-glow-a { width: 220px; height: 220px; left: -60px; top: -60px; background: #ff8fc7; opacity: .18; }.bp-hero-glow-b { width: 240px; height: 240px; right: -80px; bottom: -80px; background: #7c3aed; opacity: .22; }.bp-hero-inner { position: relative; z-index: 1; }.bp-hero-icon {
  font-size: 28px;
  display: inline-block;
  padding: 6px 12px;
  border-radius: 18px;
  margin-bottom: 4px;
  background: rgba(255, 143, 199, 0.18);
  border: 1px solid rgba(255, 143, 199, 0.32);
  box-shadow: 0 4px 12px rgba(124, 58, 237, 0.18);
  filter: drop-shadow(0 4px 14px rgba(255, 143, 199, 0.30));
  animation: bp-bob 3.4s ease-in-out infinite;
}@keyframes bp-bob {0%, 100% { transform: translateY(0); }50% { transform: translateY(-4px); }
}.bp-hero-title {
  font-family: var(--font-cute);
  font-size: 26px;
  font-weight: 400;
  letter-spacing: .5px;
  background: var(--grad-accent);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 4px;
}.bp-hero-sub {
  color: var(--text-2);
  font-size: 15px;
  max-width: 720px;
  margin: 0 auto 8px;
  line-height: 1.55;
}.bp-hero-sub b { color: var(--text); font-weight: 600; }.bp-hero-tags {
  display: flex;
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 10px;
}.bp-hero-tag {
  font-size: 15px;
  color: var(--text);
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.10);
}.bp-billing-toggle {
  display: inline-flex;
  background: rgba(26, 23, 38, 0.65);
  padding: 4px;
  border-radius: 999px;
  border: 1px solid rgba(255, 143, 199, 0.28);
}.bp-billing-opt {
  padding: 6px 18px;
  border-radius: 999px;
  border: none;
  background: transparent;
  color: var(--text-2);
  cursor: pointer;
  font-size: 15px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all .15s;
}.bp-billing-opt:hover { color: var(--text); }.bp-billing-opt.active {
  background: var(--grad-accent);
  color: #fff;
  box-shadow: 0 4px 14px rgba(124, 58, 237, 0.35);
  font-weight: 600;
}.bp-billing-save {
  font-size: 15px;
  padding: 2px 6px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}.bp-grid {
  display: flex;
  flex-wrap: nowrap;
  
  justify-content: flex-start;
  gap: 18px;
  
  margin-top: -10px;
  margin-bottom: 30px;
  
  max-width: calc(5 * clamp(209px, 17.05vw, 275px) + 72px);
  margin-left: auto;
  margin-right: auto;
  padding: 32px 0 58px;
  overflow-x: auto;
}@media (max-width: 1300px) {.bp-grid { gap: 16px; }
}@media (max-width: 720px) {.bp-grid { gap: 14px; }.bp-hero { padding: 26px 18px 18px; }.bp-hero-title { font-size: 30px; }.bp-compare-grid, .bp-pay-row { grid-template-columns: 1fr 1fr; }
}.bp-card {
  position: relative;
  
  width: clamp(209px, 17.05vw, 275px);
  aspect-ratio: 1310 / 2474;        
  border-radius: 28px;
  padding: 0;
  overflow: hidden;                 
  box-shadow: 0 12px 34px rgba(0,0,0,.35);
  transition: transform .25s, box-shadow .25s, opacity .25s;
  flex: 0 0 auto;
  opacity: .9;
}.bp-card:hover { opacity: 1; box-shadow: 0 20px 48px rgba(124, 58, 237, 0.28); }.bp-card[data-plan="free"] { background: url('/assets/cards/card2.webp') no-repeat center / cover; }.bp-card[data-plan="trial"] { background: url('/assets/cards/card1.webp') no-repeat center / cover; }.bp-card[data-plan="team"] { background: url('/assets/cards/card3.webp') no-repeat center / cover; }.bp-card[data-plan="pro"] { background: url('/assets/cards/card4.webp') no-repeat center / cover; }.bp-card[data-plan="enterprise"] { background: url('/assets/cards/card5.webp') no-repeat center / cover; }.bp-card::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 28px;
  padding: 2px;
  background: linear-gradient(135deg, rgba(255, 143, 199, 0.55) 0%, rgba(124, 58, 237, 0.55) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
  transition: background .3s;
  z-index: 1;
}.bp-card.is-current { box-shadow: 0 0 0 2px rgba(255,143,199,.6), 0 16px 40px rgba(0,0,0,.35); }.bp-card.is-current::before { background: linear-gradient(135deg, rgba(255,143,199,0.55) 0%, rgba(124,58,237,0.55) 100%); }.bp-card-head {
  position: absolute;
  top: 3.2%;
  left: 7.5%;
  right: 7.5%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  z-index: 2;
}.bp-card-title {
  font-family: var(--font-cute);
  
  font-size: 30px;
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  text-shadow: 0 1px 4px rgba(0,0,0,.45);
  
  margin-left: 15px;
  margin-top: 5px;
}.bp-card-title .bp-card-tag {
  
  display: block;
  text-align: center;
  font-size: 16px;
  margin: 6px auto 0;
  padding: 2px 10px;
  width: fit-content;
  border-radius: 999px;
  color: #fff;
  background: rgba(124, 58, 237, 0.45);
  font-weight: 600;
  letter-spacing: .5px;
}.bp-card-price-box { text-align: left; margin-top: 20px; transform: translate(0px, -5px); }.bp-card .bp-price { justify-content: flex-start; color: #fff; }.bp-card .bp-price-yen { color: #fff; font-size: 15px; }.bp-card .bp-price-num {
  font-size: 30px;
  background: none;
  
  -webkit-text-fill-color: #ff8fc7;
  color: #ff8fc7;
  text-shadow: 0 0 10px rgba(255, 143, 199, 0.45), 0 1px 3px rgba(0,0,0,.4);
}.bp-card .bp-price-cycle { color: #ffd6e8; font-size: 15px; }.bp-price-old {
  font-size: 15px;
  color: rgba(255, 255, 255, .62);
  text-decoration: line-through;
  text-decoration-thickness: 1.5px;
  margin-right: 6px;
  font-family: var(--font-cute);
}.bp-card .bp-price-custom { font-size: 24px; color: #fff; }.bp-card-quota {
  position: absolute;
  left: 7.5%;
  right: 7.5%;
  
  top: calc(58% - 15px);
  bottom: calc(16.5% + 15px);
  transform: translateY(-18px);
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 8px 8px;
  z-index: 2;
}.bp-q-row { display: contents; }.bp-q-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #fff;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
}.bp-q-cell b {
  
  font-size: 19px;
  font-weight: 700;
  line-height: 1.1;
  color: #ffe3a3;
  text-shadow: 0 1px 4px rgba(0,0,0,.5);
}.bp-q-cell span {
  
  font-size: 15px;
  opacity: .9;
  margin-top: 2px;
  color: rgba(255,255,255,.62);
}.bp-q-cell:nth-child(-n+3) { grid-column: span 2; }.bp-q-cell:nth-child(n+4) { grid-column: span 3; }.bp-q-row:first-child .bp-q-cell { margin-top: 5px; }.bp-q-row:first-child .bp-q-cell:nth-child(1) { transform: translateX(-2px); }.bp-q-row:first-child .bp-q-cell:nth-child(3) { transform: translateX(1px); }.bp-q-row:nth-child(2) .bp-q-cell:nth-child(1) { transform: translate(18px, -5px); }.bp-q-row:nth-child(2) .bp-q-cell:nth-child(2) { transform: translate(61px, -5px); }.bp-card-btn {
  position: absolute;
  left: 7.5%;
  right: 7.5%;
  
  bottom: calc(4% + 22px);
  transform: translateY(16px);
  height: 9%;
  border: none;
  border-radius: 999px;
  background: transparent;
  color: #fff;
  
  font-size: 19px;
  font-weight: 700;
  cursor: pointer;
  z-index: 2;
  text-shadow: 0 1px 3px rgba(0,0,0,.4);
  transition: filter .15s;
}.bp-card-btn:hover { filter: brightness(1.1); }.bp-card-feature {
  position: absolute;
  left: 8%;
  right: 8%;
  
  bottom: calc(14.2% + 20px);
  text-align: center;
  
  font-size: 15px;
  color: rgba(255,255,255,.92);
  line-height: 1.35;
  z-index: 2;
  text-shadow: 0 1px 3px rgba(0,0,0,.5);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}.bp-current-flag {
  position: absolute;
  top: 14px;
  left: 14px;      
  background: var(--ok);
  color: #1a1726;
  font-size: 15px;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(94, 234, 212, 0.35);
}.bp-current-badge {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  background: linear-gradient(135deg, #5eead4 0%, #06b6d4 100%);
  color: #0b1020;
  font-size: 15px;
  font-weight: 700;
  padding: 4px 12px;
  border-radius: 999px;
  box-shadow: 0 4px 14px rgba(94, 234, 212, 0.45);
}.bp-card-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  padding-right: 30px;        
  flex-wrap: nowrap;          
}.bp-card-id {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1 1 auto;             
}.bp-card-icon {
  font-size: 24px;            
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;                
  height: 36px;
  border-radius: 10px;
  background: rgba(255, 143, 199, 0.16);
  border: 1px solid rgba(255, 143, 199, 0.32);
  filter: drop-shadow(0 4px 10px rgba(255, 143, 199, 0.18));
}.bp-card-id-text { min-width: 0; }.bp-card-name {
  font-family: var(--font-cute);
  font-size: 19px;          
  color: var(--text);
  letter-spacing: .3px;
  line-height: 1.1;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}.bp-card-tag {
  font-size: 15px;          
  color: var(--accent);
  padding: 2px 8px;
  border-radius: 999px;
  background: rgba(255, 126, 179, 0.14);
  margin-top: 5px;
  display: inline-block;
  white-space: nowrap;      
}.bp-card-price-box {
  flex: 0 0 auto;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
}.bp-price {
  font-family: var(--font-cute);
  text-align: right;
  margin: 0;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  color: var(--text);
  white-space: nowrap;        
  flex-wrap: nowrap;
}.bp-price-yen {
  font-size: 19px;          
  color: var(--accent);
  margin-right: 2px;
}.bp-price-num {
  font-size: 36px;          
  line-height: 1;
  background: var(--grad-accent);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-weight: 600;
}.bp-price-cycle {
  font-size: 15px;          
  color: var(--text-3);
  margin-left: 4px;
}.bp-price-custom {
  font-family: var(--font-cute);
  font-size: 22px;          
  color: var(--text);
  text-align: right;
  margin: 0;
  white-space: nowrap;
}.bp-price-custom-sub {
  font-size: 15px;
  color: var(--text-3);
  text-align: right;
  margin-top: 2px;
}.bp-quota-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;             
  margin-bottom: 12px;
}.bp-quota-cell {
  background: rgba(26, 23, 38, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  padding: 7px 5px;
  text-align: center;
}.bp-quota-cell b {
  display: block;
  font-family: var(--font-round);
  font-size: 18.5px;        
  background: var(--grad-accent);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  letter-spacing: .3px;
  line-height: 1.15;
}.bp-quota-cell span {
  display: block;
  font-size: 15px;          
  color: var(--text-3);
  margin-top: 2px;
}.bp-quota-cell.full { grid-column: 1 / -1; }.bp-feat-list {
  list-style: none;
  padding: 0;
  margin: 0 0 10px;
  font-size: 15.5px;        
  color: var(--text-2);
  flex: 1;
}.bp-feat-list li {
  padding: 6px 0;           
  display: flex;
  align-items: center;
  gap: 6px;
}.bp-feat-check {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--grad-accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
}.bp-once {
  display: inline-block;
  margin: 8px 0 12px;
  padding: 4px 12px;
  border-radius: 999px;
  font-size: 15px;
  color: var(--accent-warm, #fbbf24);
  background: rgba(251, 191, 36, 0.12);
  border: 1px solid rgba(251, 191, 36, 0.35);
  letter-spacing: 0.5px;
  text-align: center;
}.bp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 11px 14px;
  border-radius: 14px;
  border: none;
  font-size: 16px;
  font-weight: 500;
  font-family: var(--font-cute);
  letter-spacing: .3px;
  cursor: pointer;
  transition: transform .15s, box-shadow .15s, background .15s;
}.bp-btn.block { width: 100%; padding: 12px 14px; font-size: 17px; }.bp-btn-primary {
  background: var(--grad-accent);
  color: #fff;
  box-shadow: 0 6px 18px rgba(124, 58, 237, 0.40);
}.bp-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(124, 58, 237, 0.50);
  filter: brightness(1.07);
}.bp-btn-current {
  background: linear-gradient(135deg, #5eead4 0%, #06b6d4 100%);
  color: #0a1f1c;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(94, 234, 212, 0.35);
  cursor: default;
  opacity: 1;
}.bp-btn-soft {
  background: rgba(255, 143, 199, 0.14);
  color: var(--text);
  border: 1px solid rgba(255, 143, 199, 0.35);
}.bp-btn-soft:hover {
  background: rgba(255, 143, 199, 0.22);
  border-color: rgba(255, 143, 199, 0.6);
}.bp-btn-ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid rgba(255, 255, 255, 0.18);
}.bp-btn-ghost:hover { background: rgba(255, 255, 255, 0.06); }.bp-btn-current {
  background: rgba(94, 234, 212, 0.14);
  color: var(--ok);
  border: 1px solid var(--ok);
  cursor: default;
}.bp-section-title {
  font-family: var(--font-cute);
  font-size: 24px;
  color: var(--text);
  
  position: relative;
  z-index: 1;
  margin-top: 0;
  margin-bottom: 18px;
  
  max-width: calc(5 * clamp(209px, 17.05vw, 275px) + 72px);
  margin-left: auto;
  margin-right: auto;
  letter-spacing: .3px;
  display: flex;
  align-items: center;
  gap: 10px;
}.bp-section-title::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 18px;
  background: var(--grad-accent);
  border-radius: 2px;
}.bp-section-emoji {
  font-size: 22px;
  line-height: 1;
}.bp-addon-tip { color: var(--text-2); font-size: 16px; margin: -6px 0 14px; }.bp-addon-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0 auto 16px; max-width: 780px; }@media (max-width: 720px) {.bp-addon-row { grid-template-columns: 1fr; } }.bp-addon-btn {
  position: relative; overflow: hidden;
  display: flex; flex-direction: row; align-items: center; gap: 16px;
  padding: 16px 18px; border: 1px solid rgba(255,255,255,.12); border-radius: 16px;
  background: linear-gradient(180deg, rgba(38,34,58,.6) 0%, rgba(29,26,43,.6) 100%);
  background-size: contain; background-position: center; background-repeat: no-repeat;
  backdrop-filter: blur(8px); cursor: pointer; text-align: left; color: #fff;
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
}.bp-addon-btn:hover { transform: translateY(-3px); border-color: rgba(255,143,199,.6); box-shadow: 0 10px 24px rgba(124,58,237,.25); }.bp-addon-btn.has-bg {
  border: none; background-color: transparent;
  background-size: cover; background-repeat: no-repeat; background-position: center;
  box-shadow: 0 12px 30px rgba(0,0,0,.38);
  min-height: 240px; flex-direction: column; justify-content: flex-end; align-items: flex-start;
  padding: 24px 26px;
}.bp-addon-btn.has-bg::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 64%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.66) 100%);
  pointer-events: none;
}.bp-addon-btn.has-bg .bp-addon-body { position: relative; z-index: 1; gap: 6px; }.bp-addon-btn.has-bg .bp-addon-name { font-size: 23px; font-weight: 800; text-shadow: 0 2px 8px rgba(0,0,0,.6); }.bp-addon-btn.has-bg .bp-addon-desc { font-size: 15.5px; color: rgba(255,255,255,.94); text-shadow: 0 1px 5px rgba(0,0,0,.6); }.bp-addon-btn.has-bg .bp-addon-price-now { color: #ffd1e8; }.bp-addon-img { width: 72px; height: 72px; flex: 0 0 auto; object-fit: contain; border-radius: 12px; background: rgba(255,255,255,.04); }.bp-addon-ico { font-size: 34px; flex: 0 0 auto; width: 72px; height: 72px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.04); border-radius: 12px; }.bp-addon-body { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; flex: 1 1 auto; }.bp-addon-name { font-size: 18px; font-weight: 700; }.bp-addon-desc { font-size: 15px; color: rgba(255,255,255,.82); }.bp-addon-price { display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 3px 8px; min-width: 0; margin-top: 2px; }.bp-addon-price-main { display: inline-flex; flex-wrap: nowrap; align-items: baseline; gap: 8px; min-width: 0; }.bp-addon-price-old { font-size: 15px; color: rgba(255,234,243,.5); font-weight: 600; text-decoration: line-through; }.bp-addon-price-now { font-size: 19px; color: #ff8fc7; font-weight: 800; line-height: 1.1; }.bp-addon-price-now em { font-size: 15px; font-style: normal; font-weight: 600; color: rgba(255,234,243,.72); margin-left: 2px; }.bp-addon-price-tag {
  display: inline-block; font-size: 15px; font-weight: 700; color: #fff;
  padding: 2px 9px; border-radius: 999px;
  background: linear-gradient(90deg, #ff8fc7, #7c3aed);
  box-shadow: 0 2px 8px rgba(124,58,237,.28);
}.bp-addon-price-tag.plain { background: rgba(255,255,255,.10); color: rgba(255,234,243,.72); box-shadow: none; }.profit-tool { display: flex; flex-direction: column; gap: 16px; }.profit-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.profit-title { font-family: var(--font-cute); font-size: 24px; font-weight: 700; color: var(--text); display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }.profit-sub { font-size: 15px; color: var(--text-3); font-weight: 400; }.profit-pets { font-size: 24px; letter-spacing: 4px; filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)); }.profit-entry { display: flex; gap: 16px; align-items: stretch; flex-wrap: wrap; }.profit-form { flex: 1 1 420px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }.profit-basic { display: flex; gap: 10px; flex-wrap: wrap; }.profit-basic .pf-input { flex: 1 1 160px; }.pf-input, .profit-row input, .profit-row select, .pc-status, .pc-note { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 10px; padding: 9px 12px; font-size: 15px; }.pf-input:focus, .profit-row input:focus, .profit-row select:focus, .pc-status:focus, .pc-note:focus { outline: none; border-color: var(--accent); }.pf-date { cursor: pointer; }.profit-err { color: var(--danger); font-size: 15px; background: rgba(255,107,157,.12); border: 1px solid rgba(255,107,157,.4); border-radius: 8px; padding: 6px 10px; display: none; }.profit-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }@media (max-width: 720px) {.profit-cols { grid-template-columns: 1fr; } }.profit-col { background: rgba(38,34,58,.5); border: 1px solid rgba(255,126,179,.18); border-radius: 16px; padding: 14px; backdrop-filter: blur(6px); }.profit-col-h { display: flex; align-items: center; justify-content: space-between; font-weight: 600; margin-bottom: 10px; color: var(--text); }.profit-rows { display: flex; flex-direction: column; gap: 8px; }.profit-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }.profit-row .pr-cat { flex: 1 1 120px; min-width: 0; }.profit-row .pr-total-in, .profit-row .pr-unit-in, .profit-row .pr-qty-in { width: 92px; }.profit-row .pr-fields { display: inline-flex; align-items: center; gap: 6px; }.profit-row .pr-fields i { color: var(--text-3); font-style: normal; }.profit-col-sum { margin-top: 10px; font-size: 16px; color: var(--text-2); }.profit-col-sum b { color: var(--accent); font-size: 19px; }.profit-side { flex: 0 0 220px; display: flex; flex-direction: column; gap: 12px; }@media (max-width: 720px) {.profit-side { flex: 1 1 100%; } }.profit-side-card { background: linear-gradient(135deg, rgba(124,58,237,.28), rgba(255,126,179,.2)); border: 1px solid rgba(124,58,237,.5); border-radius: 18px; padding: 16px; display: flex; flex-direction: column; gap: 10px; box-shadow: var(--shadow); }.psc-row { display: flex; align-items: center; justify-content: space-between; font-size: 16px; color: var(--text-2); }.psc-row b { font-size: 20px; color: var(--text); }.psc-row.hl { border-top: 1px dashed rgba(255,255,255,.25); padding-top: 10px; }.psc-row.hl b { color: #ffd1ec; font-size: 24px; }.psc-row.sub { opacity: .82; }.psc-row.sub span { font-size: 15px; }.psc-row.sub b { font-size: 17px; color: var(--text-2); }.profit-confirm-btn { width: 100%; }.profit-cancel-edit { width: 100%; }.profit-filter { display: flex; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }.profit-filter .pf-input { flex: 1 1 150px; }.profit-table-wrap { overflow-x: hidden; }.pc-status, .pc-note { font-size: 15px; }.pc-note { width: 120px; }.pc-profit { color: var(--accent); font-weight: 700; }.pc-actions { white-space: nowrap; }.pc-actions .ghost-btn { margin-right: 4px; }.profit-detail { text-align: left; }.pd-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px dashed var(--line); font-size: 16px; }.pd-row b { color: var(--text); }.pd-row.hl { border-bottom: none; }.pd-row.hl b { color: #ffd1ec; font-size: 20px; }.pd-sec { margin: 12px 0 6px; font-weight: 600; color: var(--accent); }.pd-list { display: flex; flex-direction: column; gap: 4px; }.pd-li { font-size: 15px; color: var(--text-2); padding: 4px 8px; background: var(--bg-3); border-radius: 8px; }.pd-li.pd-empty { color: var(--text-3); }.pd-note { font-size: 15px; color: var(--text); background: var(--bg-3); border-radius: 10px; padding: 10px; line-height: 1.6; white-space: pre-wrap; }.pf-input, .profit-row input, .profit-row select, .pc-status, .pc-note { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 10px; padding: 9px 12px; font-size: 15px; color-scheme: dark; }.profit-form { flex: 1 1 360px; }.profit-side { flex: 0 0 300px; }.profit-side-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }.psc-sub { font-size: 15px; color: var(--text-3); margin: -4px 0 6px; padding-left: 2px; }.psc-sub.hl { color: #ffd1ec; font-weight: 600; }.profit-row { display: flex; flex-direction: column; align-items: stretch; gap: 0; background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 12px; padding: 8px 10px; }.pr-line1 { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }.pr-line2 { display: flex; gap: 8px; margin-top: 8px; }.pr-idx { min-width: 20px; text-align: center; font-weight: 700; color: var(--accent); font-size: 15px; }.profit-row .pr-cat, .profit-row .pr-note { flex: 1 1 120px; min-width: 0; }.profit-row .pr-mode { flex: 0 0 auto; }.profit-row .pr-total-in, .profit-row .pr-unit-in, .profit-row .pr-qty-in { width: 88px; }.profit-row .pr-fields { display: inline-flex; align-items: center; gap: 6px; }.profit-row .pr-fields i { color: var(--text-3); font-style: normal; }.profit-quick { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; }.profit-quick-label { font-size: 15px; color: var(--text-3); }.pc-note-cell { width: 1%; white-space: nowrap; }.pc-note-wrap { display: inline-flex; align-items: center; gap: 6px; }.pc-note-wrap .pc-note { width: 130px; }.pc-note-plus { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(255,126,179,.5); background: rgba(255,126,179,.14); color: #ffd1ec; font-size: 17px; line-height: 1; cursor: pointer; transition: background .14s ease, transform .14s ease; }.pc-note-plus:hover { background: rgba(255,126,179,.28); transform: scale(1.08); }.note-helper { text-align: left; }.nh-tabs { display: flex; gap: 8px; margin-bottom: 12px; }.nh-tab { flex: 1; padding: 8px 0; border: 1px solid var(--line); background: rgba(255,255,255,.04); color: var(--text-2); border-radius: 10px; cursor: pointer; font-size: 15.5px; font-weight: 600; }.nh-tab.active { border-color: var(--accent); color: #fff; background: rgba(255,126,179,.16); }.nh-panel { display: flex; flex-direction: column; gap: 10px; }.np-file { color: var(--text); font-size: 17px; }.nh-tip { font-size: 15px; color: var(--text-3); }.ad-price-line { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; }.modal.fm-menu-modal { width: 268px; max-width: 92vw; }.modal-card.fm-menu-modal {
  width: 100%; max-width: 100%; padding: 10px;
  
  max-height: calc(100vh - 120px); overflow-y: auto;
}.fm-menu-wrap { display: flex; flex-direction: column; gap: 6px; }.fm-menu-head {
  font-size: 15px; font-weight: 700; color: #ffeaf3;
  padding: 4px 8px 8px; border-bottom: 1px solid rgba(255,143,199,.22);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}.fm-menu-list { display: flex; flex-direction: column; gap: 2px; }.fm-menu-item {
  display: flex; align-items: center; gap: 10px;
  width: 100%; box-sizing: border-box;
  padding: 9px 10px; border: none; border-radius: 9px;
  background: transparent; color: var(--text-1);
  font-size: 15.5px; font-weight: 600; text-align: left; text-decoration: none;
  cursor: pointer; transition: background .14s ease, color .14s ease;
}.fm-menu-item:hover { background: rgba(255,126,179,.14); color: #fff; }.fm-menu-item .fm-ico { flex: none; width: 18px; text-align: center; font-size: 16px; }.fm-menu-item .fm-txt { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.fm-menu-sep { height: 1px; margin: 4px 2px; background: rgba(255,255,255,.10); }.fm-menu-item.danger { color: #ff8080; }.fm-menu-item.danger:hover { background: rgba(255,80,80,.16); color: #ff9c9c; }.q-rename-wrap.np-wrap.fm-move-wrap { width: 380px; max-width: 92vw; }.fm-move-wrap .np-form-body { flex: 0 0 auto; }.bp-addon-owned { color: var(--text-3, #b9b4c8); font-size: 15px; margin: 0 0 16px; min-height: 0; }.bp-addon-total { margin: 8px 0 4px; font-size: 17px; }.bp-addon-total b { color: #ff8fc7; font-size: 20px; }.plan-config-tabs { display: flex; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }.plan-tab {
  padding: 9px 20px; border-radius: 999px; border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.04); color: var(--text-2); cursor: pointer; font-size: 16px; font-weight: 600;
  transition: all .12s ease;
}.plan-tab:hover { border-color: rgba(255,143,199,.5); color: var(--text); }.plan-tab.active { background: linear-gradient(135deg, #ff8fc7, #7c3aed); color: #fff; border-color: transparent; box-shadow: 0 6px 16px rgba(124,58,237,.3); }.addon-config-list {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px;
  max-width: 880px; margin: 0 0 auto;
  padding: 14px; border-radius: 16px;
  align-content: start; justify-items: stretch;
  background: rgba(26,23,38,0.5);
  box-shadow:
    inset 0 0 0 1px rgba(255,143,199,0.35),
    inset 0 0 28px rgba(124,58,237,0.22),
    0 0 24px rgba(124,58,237,0.12);
}@media (max-width: 860px) {.addon-config-list { grid-template-columns: 1fr; } }.addon-config-card {
  background: linear-gradient(180deg, rgba(38,34,58,.6) 0%, rgba(29,26,43,.6) 100%);
  backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 14px;
}.addon-config-title { display: flex; align-items: center; justify-content: space-between; font-size: 17px; font-weight: 400; color: #fff; margin-bottom: 10px; }.addon-disc-card { grid-column: 1 / -1; }.addon-disc-rows { display: flex; flex-wrap: wrap; gap: 8px; }.addon-disc-row {
  flex: 1 1 130px; min-width: 120px;
  display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 8px;
  font-size: 15px; color: var(--text);
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 10px;
  padding: 8px 12px;
}.addon-disc-row > span { min-width: 0; font-weight: 600; text-align: left; }.addon-disc-row input { width: 72px; min-width: 0; padding: 6px 8px; border-radius: 8px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); font-size: 16px; text-align: center; }.bp-pay-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin: 0 auto 22px;
  max-width: calc(5 * clamp(209px, 17.05vw, 275px) + 72px);
}@media (max-width: 720px) {.bp-pay-row { grid-template-columns: 1fr 1fr; }
}.bp-pay-card {
  background: linear-gradient(180deg, rgba(38, 34, 58, 0.6) 0%, rgba(29, 26, 43, 0.6) 100%);   
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  padding: 18px;
  text-align: center;
  transition: transform .2s, border-color .2s;
}.bp-pay-card:hover {
  transform: translateY(-3px);
  border-color: rgba(255, 143, 199, 0.35);
}.bp-pay-icon {
  font-size: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: rgba(255, 143, 199, 0.15);
  border: 1px solid rgba(255, 143, 199, 0.3);
  margin-bottom: 10px;
}.bp-pay-title {
  font-family: var(--font-cute);
  font-size: 18px;
  color: var(--text);
  margin-bottom: 4px;
}.bp-pay-sub {
  font-size: 15px;
  color: var(--text-3);
  line-height: 1.5;
}.bp-faq {
  background: rgba(26, 23, 38, 0.6);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: 24px;
  margin: 50px auto 22px;
  
  display: block;
  min-height: auto;
  max-width: calc(5 * clamp(209px, 17.05vw, 275px) + 72px);
}.bp-faq .bp-section-title { margin-top: 0; }.bp-faq-list { width: 100%; margin-top: 14px; }.bp-faq-list details {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  padding: 0;
  margin-bottom: 8px;
  overflow: hidden;
  transition: border-color .2s;
}.bp-faq-list details:hover { border-color: rgba(255, 143, 199, 0.35); }.bp-faq-list summary {
  padding: 13px 16px;
  font-size: 16px;
  color: var(--text);
  font-weight: 500;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}.bp-faq-list summary::-webkit-details-marker { display: none; }.bp-faq-list summary::after {
  content: "⌄";
  font-size: 20px;
  color: var(--accent);
  transition: transform .2s;
}.bp-faq-list details[open] summary::after { transform: rotate(180deg); }.bp-faq-a {
  padding: 0 16px 14px;
  color: var(--text-2);
  font-size: 15px;
  line-height: 1.7;
}.modal-doc { font-size: 17.5px; color: var(--text-2); line-height: 1.7; text-align: left; }.modal-doc p { margin: 8px 0; }.checkout { max-width: 380px; margin: 18px auto 0; background: var(--panel); border: 1px solid var(--line); border-radius: 14px; padding: 22px 20px; text-align: center; }.checkout-head { margin-bottom: 6px; }.checkout-title { font-size: 20px; font-weight: 700; }.checkout-sub { font-size: 15px; color: var(--text-3); margin-top: 4px; }.checkout-amount { font-size: 32px; font-weight: 800; color: var(--accent); margin: 14px 0 4px; }.checkout-amount-unit { font-size: 16px; font-weight: 600; color: var(--text-3); margin-left: 2px; }.checkout-channels { display: flex; gap: 8px; justify-content: center; margin: 10px 0 14px; }.co-chan { flex: 1; padding: 9px 0; border: 1px solid var(--line); background: var(--bg-3); color: #fff; border-radius: 9px; cursor: pointer; font-size: 15px; transition: all .15s; }.co-chan.active { border-color: var(--accent); color: #fff; font-weight: 700; background: var(--accent-soft); }.checkout-qr { width: 220px; height: 220px; margin: 4px auto 10px; background: #fff; border-radius: 10px; display: flex; align-items: center; justify-content: center; padding: 8px; box-sizing: border-box; }.checkout-qr svg { width: 100%; height: 100%; display: block; }.checkout-loading { font-size: 15px; color: var(--text-3); }.checkout-error { font-size: 15px; color: var(--danger); padding: 8px; }.checkout-hint { font-size: 15px; color: var(--text-2); margin-bottom: 14px; }.checkout-status { margin-top: 12px; font-size: 15px; }.checkout-ok { color: var(--ok); font-weight: 700; }.plan-note { font-size: 15px; color: var(--accent-2); background: rgba(255,126,179,.12); border-radius: 6px; padding: 4px 8px; margin-bottom: 8px; text-align: center; }.plan-mgr { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; margin-top: 12px; }.plan-mgr-card { background: var(--bg-3); border: 1px solid var(--line); border-radius: 12px; padding: 14px; }.plan-mgr-top { display: flex; justify-content: space-between; align-items: center; font-size: 17px; }.plan-mgr-price { color: var(--accent); font-weight: 600; }.plan-mgr-usage { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; font-size: 15px; color: var(--text-2); }.plan-mgr-usage span { background: var(--panel); border: 1px solid var(--line); border-radius: 999px; padding: 3px 9px; }.plan-mgr-feat { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }.plan-mgr .row-btns { justify-content: flex-end; }.acct-note { font-size: 15px; color: var(--text-3); margin: 12px 0 0; }.plan-config-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }.plan-config-sub { margin: 0; color: var(--text-2); font-size: 15px; }.plan-config-list { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }@media (max-width: 980px) {.plan-config-list { grid-template-columns: 1fr; } }.plan-config-card {
  display: flex; align-items: stretch; gap: 12px;
  background: linear-gradient(180deg, rgba(38,34,58,.6) 0%, rgba(29,26,43,.6) 100%);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.12); border-radius: 12px; padding: 14px 16px;
  transition: box-shadow .15s, border-color .15s;
}.plan-config-card:hover { border-color: rgba(255,143,199,.45); }.plan-config-card.dragging { opacity: .6; box-shadow: var(--shadow); border-color: var(--accent); }.plan-config-drag {
  display: flex; align-items: center; justify-content: center;
  width: 28px; flex: none; color: var(--text-3); font-size: 16px; letter-spacing: -2px;
  cursor: grab; user-select: none;
}.plan-config-drag:active { cursor: grabbing; }.plan-config-main { flex: 1; min-width: 0; }.plan-config-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }.plan-config-title { display: flex; flex-direction: column; gap: 6px; flex: 1; min-width: 0; }.plan-config-name {
  background: transparent; border: none; border-bottom: 1px solid var(--line);
  color: var(--text); font-size: 18px; font-weight: 400; padding: 2px 0; width: 100%;
}.plan-config-name:focus { border-bottom-color: var(--accent); }.plan-config-type {
  background: transparent; border: none; border-bottom: 1px solid var(--line);
  color: var(--text-2); font-size: 15px; padding: 2px 0; width: 160px;
}.plan-config-type:focus { border-bottom-color: var(--accent-2); }.plan-config-meta { display: flex; align-items: center; gap: 10px; flex: none; }.plan-config-id { color: var(--text-3); font-size: 15px; }.plan-config-valid {
  background: linear-gradient(135deg, rgba(255,126,179,.2), rgba(124,58,237,.2));
  color: var(--accent); font-size: 15px; font-weight: 600;
  padding: 3px 10px; border-radius: 999px; border: 1px solid rgba(255,126,179,.35);
}.plan-config-fields { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 10px; }.plan-config-field { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 120px; }.plan-config-field-sm { flex: 0 0 90px; min-width: 90px; }.plan-config-field span { font-size: 15px; color: var(--text-3); }.plan-config-field input {
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px;
  color: var(--text); padding: 8px 10px; font-size: 16px; width: 100%;
}.plan-config-field input:focus { border-color: var(--accent-2); }.plan-config-tip { color: var(--text-2); font-size: 15px; margin-bottom: 10px; }.plan-inline-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 10px; margin: 10px 0;
}.plan-inline-grid label { display: flex; flex-direction: column; gap: 6px; font-size: 15px; color: var(--text-3); min-width: 0; }.plan-inline-grid label > span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.plan-inline-grid input, .plan-inline-grid select {
  width: 100%; box-sizing: border-box; padding: 8px 10px; font-size: 15px;
  border-radius: 8px; border: 1px solid var(--line); background: var(--bg-2); color: var(--text-1);
  min-width: 0;
}.plan-inline-check { flex-direction: row !important; align-items: center; gap: 8px !important; padding-top: 18px; white-space: nowrap; }.plan-inline-check input { width: 16px; height: 16px; accent-color: var(--accent, #4f7cff); cursor: pointer; flex: none; }.plan-inline-check span { font-size: 15px; color: var(--text-2); }.plan-inline-feat { display: flex; flex-direction: column; gap: 4px; font-size: 15px; color: var(--text-3); margin-bottom: 12px; }.plan-inline-feat textarea {
  width: 100%; box-sizing: border-box; padding: 8px 10px; font-size: 15px; resize: vertical;
  border-radius: 8px; border: 1px solid var(--line); background: var(--bg-2); color: var(--text-1); font-family: inherit;
}.plan-inline-tip { font-size: 15px; color: var(--text-3); }.plan-config-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; row-gap: 10px; padding-top: 8px; }.plan-config-actions > * { flex: 0 0 auto; }.plan-config-order-btns { display: flex; gap: 6px; margin-right: 4px; }.plan-config-save-btn { padding: 7px 14px; font-size: 15px; }.plan-config-status {                                                        
  font-size: 15px; color: var(--text-3);
  padding: 2px 8px; border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
}.plan-config-status.dirty { color: #fbbf24; background: rgba(251, 191, 36, 0.14); }.plan-config-status.ok { color: var(--ok); background: rgba(94, 234, 212, 0.14); }.plan-config-status.err { color: #ff8fa3; background: rgba(255, 143, 163, 0.14); }.plan-config-foot { display: flex; align-items: center; gap: 12px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }.plan-config-foot .muted { color: var(--text-3); font-size: 15px; }.plan-preview-card {
  background: linear-gradient(180deg, rgba(38,34,58,0.95), rgba(29,26,43,0.95));
  border: 1px solid rgba(255,143,199,0.35);
  border-radius: 14px;
  padding: 18px;
  margin: 8px 0 4px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}.plan-preview-head { text-align: center; margin-bottom: 14px; }.plan-preview-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
}.plan-preview-grid > div {
  background: rgba(26,23,38,0.55);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  padding: 8px 6px;
  text-align: center;
}.plan-preview-grid > div.full { grid-column: 1 / -1; }.plan-preview-grid b {
  display: block;
  font-family: var(--font-round);
  font-size: 17px;
  background: var(--grad-accent);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  line-height: 1.2;
}.plan-preview-grid span {
  display: block;
  font-size: 15px;
  color: var(--text-3);
  margin-top: 2px;
}.plan-preview-feats-title {
  font-size: 15px;
  color: var(--text-2);
  margin-bottom: 6px;
  font-weight: 600;
}.plan-preview-feats ul {
  list-style: none;
  padding: 0;
  margin: 0 0 12px;
  font-size: 15px;
  color: var(--text-2);
}.plan-preview-feats li {
  padding: 4px 0;
  display: flex;
  align-items: center;
  gap: 6px;
}.plan-preview-feats li.empty {
  color: var(--text-3);
  font-style: italic;
  justify-content: center;
}.plan-preview-check {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--grad-accent);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  font-weight: 700;
}.plan-preview-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 15px;
  color: var(--text-3);
  padding-top: 10px;
  border-top: 1px solid rgba(255,255,255,0.06);
}.plan-preview-meta code {
  background: rgba(255,255,255,0.06);
  padding: 1px 6px;
  border-radius: 4px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}.text-btn {
  background: transparent; border: none; color: #fff; font-size: 15px;
  cursor: pointer; padding: 4px 0;
}.text-btn:hover { text-decoration: underline; }.admin-view { display: flex; height: 100%; overflow: hidden; position: relative; z-index: 0; background: transparent; }.admin-view::before {
  content: ''; position: absolute; inset: 0;
  background: url('/assets/bg/project.webp') no-repeat center bottom;
  background-size: cover;
  pointer-events: none; z-index: -2;
}.admin-view::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(21,19,31,0.88) 0%, rgba(21,19,31,0.55) 50%, rgba(21,19,31,0.30) 100%);
  pointer-events: none; z-index: -1;
}#adminView::before {
  background: url('/assets/bg/usercenter.webp') no-repeat center / cover;
}#adminView::after {
  background: linear-gradient(90deg, rgba(21,19,31,0.70) 0%, rgba(21,19,31,0.28) 50%, rgba(21,19,31,0.10) 100%);
}.admin-view .admin-sidebar,
.admin-view .admin-topbar,
.admin-view .admin-card:not(.admin-plan-card),
.admin-view .admin-panel,
.admin-view .wf-step,
.admin-view .admin-textarea,
.admin-view .auth-notice,
.admin-view .boss-mode-tag,
.admin-view .admin-card-row,
.admin-view .member-card,
.admin-view .member-batchbar,
.admin-view .car-item,
.admin-view .pay-block,
.admin-view .board-col,
.admin-view .bc-card,
.admin-view .sc-row,
.admin-view .trash-row,
.admin-view .upload-progress-item,
.admin-view .filter-input,
.admin-view .admin-table th,
.admin-view .admin-table td {
  background: rgba(29,26,43,0.34);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: rgba(255,143,199,0.22);
}.admin-view .member-batchbar,
.admin-view .bc-card,
.admin-view .sc-row,
.admin-view .trash-row,
.admin-view .upload-progress-item { background: rgba(38,34,58,0.27); }.admin-view .admin-back,
.admin-view .admin-link:hover,
.admin-view .admin-link.active,
.admin-view .admin-tab:hover,
.admin-view .admin-tab.active,
.admin-view .admin-table tr:hover td,
.admin-view .admin-chip { background: rgba(38,34,58,0.37); }.admin-view .admin-chip { backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }.admin-view .plan-card,
.admin-view .plan-card.active,
.admin-view .plan-mgr-card,
.admin-view .plan-config-card,
.admin-view .checkout,
.admin-view .inv-batch,
.admin-view .order-row,
.admin-view .invoice-row,
.admin-view .acct-section,
.admin-view .memb-quick-btn,
.admin-view .gift-user-list {
  background: rgba(29,26,43,0.34);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: rgba(255,143,199,0.22);
}.admin-view .plan-card.active { box-shadow: 0 0 0 1px var(--accent) inset, 0 8px 22px rgba(124,58,237,.22); }.admin-view .plan-config-card {
  background: linear-gradient(180deg, rgba(38,34,58,.6) 0%, rgba(29,26,43,.6) 100%);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.12);
}.admin-view .plan-config-card input,
.admin-view .plan-config-card select,
.admin-view .plan-config-card textarea {
  background: rgba(10,8,18,.72) !important;
  border: 1px solid rgba(255,143,199,.28) !important;
  color: #fff !important;
  border-radius: 9px;
  font-weight: 400;
}.admin-view .checkout { border-color: rgba(255,143,199,0.25); box-shadow: 0 12px 40px rgba(0,0,0,.45); }.admin-view .plan-quota div { background: rgba(255,255,255,0.04); }.admin-view .admin-panel input,
.admin-view .admin-panel select,
.admin-view .admin-panel textarea,
.admin-view .plan-card input,
.admin-view .checkout input,
.admin-view .acct-section input { background-color: rgba(0,0,0,.32); }.admin-sidebar { width: 240px; flex: 0 0 240px; background: var(--bg-2); border-right: 1px solid var(--line); display: flex; flex-direction: column; }.admin-brand { padding: 18px; font-weight: 700; font-size: 18px; border-bottom: 1px solid var(--line); }.admin-back { margin: 14px; padding: 12px 16px; border-radius: 10px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); font-size: 18px; cursor: pointer; }.admin-back:hover { border-color: var(--accent); color: var(--accent); }.admin-nav { flex: 1; overflow-y: auto; padding: 10px 0; }.admin-group { padding: 10px 14px; }.admin-group-title { display: block; font-size: 15px; color: var(--text-3); text-transform: uppercase; letter-spacing: .5px; margin: 10px 0 8px 8px; }.admin-link { display: block; width: 100%; text-align: left; padding: 12px 18px; border-radius: 10px; border: none; background: transparent; color: #fff; font-size: 18px; font-weight: 400; cursor: pointer; margin: 3px 0; }.admin-link:hover, .admin-link.active { background: var(--bg-3); color: #fff; }.admin-link.active { color: var(--accent); }.admin-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }.admin-topbar { height: 62px; border-bottom: 1px solid var(--line); display: flex; align-items: center; padding: 0 20px; background: var(--bg-2); }.admin-tabs { display: flex; gap: 10px; }.admin-tab { padding: 10px 18px; border-radius: 10px; border: none; background: transparent; color: #fff; font-size: 18px; font-weight: 400; cursor: pointer; }.admin-tab:hover, .admin-tab.active { background: var(--bg-3); color: #fff; }.admin-tab.active { color: var(--accent); }.admin-content { flex: 1; overflow-y: auto; padding: 22px; }.admin-page-title {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 28px; font-weight: 400;
  padding: 10px 22px; margin-bottom: 18px;
  border-radius: 999px;
  background: linear-gradient(135deg, rgba(255,143,199,.18) 0%, rgba(124,58,237,.18) 100%);
  border: 1px solid rgba(255,143,199,.28);
  box-shadow: 0 6px 18px rgba(124,58,237,.15), inset 0 1px 0 rgba(255,255,255,.06);
  color: var(--text);
  letter-spacing: .3px;
  transition: box-shadow .2s, background .2s, border-color .2s;
}.admin-page-title.emp-head-highlight {
  background: linear-gradient(135deg, rgba(255,126,179,.35) 0%, rgba(124,58,237,.35) 100%);
  border-color: rgba(255,126,179,.55);
  box-shadow: 0 8px 22px rgba(255,126,179,.35), inset 0 1px 0 rgba(255,255,255,.12);
  color: #fff;
}.admin-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }.admin-card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 18px; }.admin-card-label { font-size: 15px; color: var(--text-2); margin-bottom: 8px; }.admin-card-value { font-size: 26px; font-weight: 700; color: var(--text); }.admin-card.admin-plan-card { background: linear-gradient(120deg, rgba(255,126,179,.16), rgba(168,85,247,.16)); border-color: rgba(255,126,179,.4); }.admin-card-hint { font-size: 15px; color: var(--text-3); margin-bottom: 6px; }.dash-tabs { display: flex; gap: 8px; margin-bottom: 16px; }.dash-tab {
  border: 1px solid var(--line); background: var(--bg-2); color: var(--text-2);
  padding: 8px 16px; border-radius: 999px; cursor: pointer; font-size: 15px; font-weight: 600;
}.dash-tab.active { background: var(--accent, #4f7cff); color: #fff; border-color: var(--accent, #4f7cff); }.dash-bar-wrap { flex: 1; min-width: 90px; height: 8px; border-radius: 999px; background: rgba(127,127,127,.14); overflow: hidden; }.dash-bar { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--accent, #4f7cff), #7c5cff); }.dash-bar-val { width: 90px; text-align: right; font-size: 15px; color: var(--text-2); font-variant-numeric: tabular-nums; }.dash-trend { display: flex; align-items: flex-end; gap: 6px; height: 150px; padding-top: 8px; }.dash-trend-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; justify-content: flex-end; }.dash-trend-bar { width: 70%; max-width: 26px; min-height: 2px; border-radius: 5px 5px 0 0; background: linear-gradient(180deg, #7c5cff, var(--accent, #4f7cff)); cursor: default; transition: filter .15s; }.dash-trend-bar:hover { filter: brightness(1.2); }.dash-trend-date { font-size: 15px; color: var(--text-3); white-space: nowrap; }.mini-bar { display: inline-block; width: 64px; height: 6px; border-radius: 999px; background: rgba(127,127,127,.14); overflow: hidden; vertical-align: middle; margin-right: 8px; }.mini-bar i { display: block; height: 100%; background: var(--accent, #4f7cff); border-radius: 999px; }.mini-bar-txt { font-size: 15px; color: var(--text-3); }td.num { text-align: right; font-variant-numeric: tabular-nums; }td.soon { font-size: 15px; color: var(--text-2); max-width: 260px; }.memb-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }.memb-quick-btn {
  display: flex; flex-direction: column; gap: 4px; text-align: left; cursor: pointer;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px;
  transition: border-color .15s, transform .15s;
}.memb-quick-btn:hover { border-color: var(--accent, #4f7cff); transform: translateY(-2px); }.memb-quick-btn b { font-size: 16px; color: var(--text-1); }.memb-quick-btn span { font-size: 15px; color: var(--text-3); }.plan-inline-sel { padding: 4px 8px; font-size: 15px; border-radius: 7px; border: 1px solid var(--line); background: var(--bg-2); color: var(--text-1); }.expire-inline { padding: 4px 6px; font-size: 15px; border-radius: 7px; border: 1px solid var(--line); background: var(--bg-2); color: var(--text-1); width: 138px; }.cp-inline { padding: 4px 6px; font-size: 15px; border-radius: 7px; border: 1px solid var(--line); background: var(--bg-2); color: var(--text-1); min-width: 74px; }.cp-inline.num { width: 58px; }.pay-cfg-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 22px; margin-bottom: 16px; }.pay-cfg-col { display: flex; flex-direction: column; }.pay-cfg-col label { margin: 10px 0 4px; font-size: 15px; color: var(--text-2); }.pay-qr-preview { width: 180px; height: 180px; border: 1px dashed var(--line); border-radius: 10px; display: flex; align-items: center; justify-content: center; background: rgba(0,0,0,.2); overflow: hidden; }.pay-qr-preview img { width: 100%; height: 100%; object-fit: contain; background: #fff; }.pay-qr-empty { color: var(--text-3); font-size: 15px; }.checkout-qrimg { width: 220px; height: 220px; border-radius: 10px; background: #fff; padding: 8px; display: block; margin: 0 auto; }.checkout-account { text-align: center; margin-top: 10px; font-size: 16px; color: var(--text-2); }.checkout-note { text-align: center; margin-top: 8px; font-size: 15px; color: var(--text-3); line-height: 1.5; }.gift-tabs { display: flex; gap: 8px; margin: -8px 0 16px; }.gift-tab {
  border: 1px solid var(--line); background: var(--bg-2); color: var(--text-2);
  padding: 8px 16px; border-radius: 999px; cursor: pointer; font-size: 15px; font-weight: 600;
}.gift-tab:hover { color: var(--text); }.gift-tab.active { background: var(--grad-accent); color: #fff; border-color: transparent; }.gift-layout { display: grid; grid-template-columns: 320px 1fr; gap: 22px; align-items: stretch; }.gift-users { display: flex; flex-direction: column; gap: 10px; min-height: 0; align-self: start; }.gift-user-list {
  flex: 0 0 auto;
  max-height: 396px;          
  overflow-y: auto;
  border: 1px solid var(--line); border-radius: 12px; background: rgba(0,0,0,.18);
  scrollbar-width: thin;
}.gift-user-list::-webkit-scrollbar { width: 8px; }.gift-user-list::-webkit-scrollbar-thumb { background: rgba(255,255,255,.18); border-radius: 8px; }.gift-user-list::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.3); }.gift-user { padding: 12px 14px; border-bottom: 1px solid var(--line); cursor: pointer; }.gift-user:last-child { border-bottom: none; }.gift-user:hover { background: rgba(255,255,255,.05); }.gift-user.active { background: rgba(124,58,237,.22); }.gift-user-name { font-size: 17px; color: var(--text); }.gift-user-meta { font-size: 15px; color: var(--text-3); margin-top: 2px; }.gift-form .gift-target { margin-bottom: 12px; font-size: 17px; }.gift-form { display: flex; flex-direction: column; }.admin-card-sub { font-size: 15px; color: var(--text-2); margin-top: 6px; }.admin-card-sub.exp-ok { color: #34c759; }.admin-card-sub.exp-soon { color: #ff9500; font-weight: 600; }.admin-card-sub.exp-over { color: #ff3b30; font-weight: 600; }.admin-card-sub.exp-perm { color: var(--accent); }.admin-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-bottom: 20px; }.admin-panel { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 18px; }.admin-panel + .admin-panel { margin-top: 18px; }.sec-title { margin: 0 0 14px; font-size: 17px; font-weight: 700; color: var(--text); }.admin-panel-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; font-weight: 600; font-size: 17px; }.admin-link-text { font-size: 15px; color: var(--accent); cursor: pointer; text-decoration: none; }.admin-link-text:hover { text-decoration: underline; }.um-inbox-wrap { background: rgba(10,12,20,.55); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,.08); border-radius: 14px; padding: 14px; }.um-cat-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }.um-cat-chip { padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text-2); font-size: 15px; cursor: pointer; }.um-cat-chip:hover { border-color: var(--accent); color: var(--text); }.um-cat-chip.on { background: var(--grad-accent); color: #fff; border-color: transparent; }.um-msg { background: rgba(0,0,0,.28); border: 1px solid rgba(255,255,255,.08); border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; }.um-msg-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.um-msg-cat { font-size: 15px; padding: 2px 8px; border-radius: 10px; background: var(--grad-accent); color: #fff; }.um-msg-subj { font-weight: 600; color: var(--text); flex: 1; min-width: 120px; }.um-msg-time { font-size: 15px; color: var(--text-3); }.um-msg-body { margin: 6px 0; color: var(--text); white-space: pre-wrap; line-height: 1.5; }.um-msg-from { font-size: 15px; color: var(--text-3); }.um-msg-atts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }.um-msg-atts img { max-width: 120px; max-height: 90px; border-radius: 8px; border: 1px solid var(--line); object-fit: cover; }.um-send-form { display: flex; flex-direction: column; gap: 14px; max-width: 640px; }.um-send-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.um-send-row .um-field { flex: 1 1 180px; min-width: 140px; margin: 0; }.um-field { display: flex; flex-direction: column; gap: 6px; }.um-label { font-size: 15px; color: var(--text-3); flex-shrink: 0; }.admin-usage { display: flex; align-items: center; gap: 28px; }.admin-donut-wrap { position: relative; width: 180px; height: 180px; flex: none; }.admin-donut-text { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }.admin-donut-used { font-size: 22px; font-weight: 700; }.admin-donut-label { font-size: 15px; color: var(--text-3); }.admin-usage-legend { flex: 1; }.admin-legend-row { display: flex; align-items: center; justify-content: space-between; font-size: 16px; margin: 10px 0; }.admin-legend-dot { width: 12px; height: 12px; border-radius: 50%; margin-right: 8px; display: inline-block; }.admin-legend-left { display: flex; align-items: center; color: var(--text-2); }.admin-team-info { display: flex; align-items: center; gap: 16px; padding: 10px 0; }.admin-team-logo { width: 58px; height: 58px; border-radius: 12px; background: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 26px; font-weight: 700; color: #fff; }.admin-team-name { font-size: 19px; font-weight: 700; }.admin-team-plan { font-size: 15px; color: var(--text-3); margin-top: 5px; }.admin-table { width: 100%; border-collapse: collapse; font-size: 16px; }.admin-table th { text-align: left; padding: 12px; color: var(--text-3); font-weight: 600; border-bottom: 1px solid var(--line); position: relative; }.admin-table td { padding: 12px; border-bottom: 1px solid var(--line); color: var(--text); }.admin-table th, .admin-table td { border-right: 1px solid var(--line); }.admin-table th:last-child, .admin-table td:last-child { border-right: none; }.admin-table th.no-resize { position: static; }.admin-table .row-actions { justify-content: flex-start; }.admin-table tr:hover td { background: var(--bg-3); }.sidebar-foot { margin-top: auto; padding: 14px; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--line); }.side-admin-btn { padding: 12px 14px; border-radius: 8px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); font-size: 15px; cursor: pointer; text-align: left; }.side-admin-btn:hover { border-color: var(--accent); color: var(--accent); }.side-admin-btn.boss { background: linear-gradient(120deg, #2a2150, #3a2a6a); color: #e9e3ff; border-color: #4a3a8a; }.side-admin-btn.boss:hover { color: #fff; border-color: var(--accent); }.side-admin-btn.buy { background: linear-gradient(120deg, #ff7eb3, #a855f7); color: #fff; border: none; font-weight: 600; }.side-admin-btn.buy:hover { filter: brightness(1.08); color: #fff; border-color: transparent; }.side-support-btn {
  display: flex;
  align-items: center;
  gap: 10px;
  background: linear-gradient(135deg, rgba(255,126,179,.10), rgba(124,58,237,.10));
  border: 1px solid rgba(255,126,179,.30);
  color: var(--text);
  padding: 9px 12px;
  border-radius: 10px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 500;
  transition: all .15s;
}.side-support-btn:hover {
  background: linear-gradient(135deg, rgba(255,126,179,.20), rgba(124,58,237,.20));
  border-color: rgba(255,126,179,.55);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(124,58,237,.20);
}.side-support-btn .ss-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: transparent;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  flex-shrink: 0;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(124,58,237,.35);
}.side-support-btn .ss-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }.side-support-btn .ss-label {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 1;
  text-align: left;
}.support-info {
  background: var(--bg-3);
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 14px 16px;
  margin: 10px 0;
}.support-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 6px 0;
  font-size: 17px;
}.support-row + .support-row { border-top: 1px dashed var(--line); }.support-row .sr-label { color: var(--text-2); min-width: 90px; }.support-row .sr-val { color: var(--text); font-weight: 500; flex: 1; word-break: break-all; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }.support-row.is-online { background: rgba(0,180,120,.08); border-radius: 8px; padding-left: 8px; padding-right: 8px; }.support-row .sr-online {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 15px; font-weight: 700; color: #12c07a;
  background: rgba(18,192,122,.14); border: 1px solid rgba(18,192,122,.4);
  border-radius: 999px; padding: 1px 8px; letter-spacing: .3px;
  animation: srOnlinePulse 1.8s ease-in-out infinite;
}@keyframes srOnlinePulse {0%,100% { opacity: 1; }50% { opacity: .55; } }.support-row .sr-note {
  font-size: 15px; color: var(--text-3); font-weight: 400;
  background: var(--bg-2); border: 1px solid var(--line);
  border-radius: 6px; padding: 1px 7px;
}.support-row .support-copy-btn {
  margin-left: auto; font-size: 15px; padding: 4px 10px; cursor: pointer;
  background: var(--bg-2); color: var(--text-2);
  border: 1px solid var(--line); border-radius: 7px;
  transition: .16s;
}.support-row .support-copy-btn:hover { color: var(--text); border-color: var(--accent); transform: translateY(-1px); }.support-info.support-empty { color: var(--text-3); font-size: 16px; text-align: center; padding: 18px 16px; }.support-desc { color: var(--text-2); font-size: 16px; line-height: 1.6; margin: 0 0 12px; }.support-sub { margin: 0 0 8px; font-size: 17px; color: var(--text); font-weight: 600; }.modal .support-textarea {
  width: 100%; box-sizing: border-box; min-height: 84px; margin-bottom: 0;
  background: rgba(0,0,0,.32); border: 1.5px solid rgba(255,126,179,.45); color: #fff;
  border-radius: 12px; padding: 10px 12px; font-size: 17px; line-height: 1.6; outline: none; resize: vertical;
}.modal .support-textarea::placeholder { color: rgba(255,234,243,.45); }.modal .support-textarea:focus { border-color: #ff7eb3; box-shadow: 0 0 0 4px rgba(255,126,179,.22); background: rgba(0,0,0,.42); }.sup-cfg-list { display: flex; flex-direction: column; gap: 8px; margin: 6px 0 10px; }.sup-cfg-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
  background: var(--bg-3); border: 1px solid var(--line);
  border-radius: 9px; padding: 8px 10px;
}.sup-cfg-row .sup-cfg-type {
  font-size: 15px; font-weight: 700; color: var(--text);
  min-width: 74px; flex: 0 0 auto;
}.sup-cfg-row .sup-cfg-val { flex: 1 1 220px; min-width: 180px; margin: 0 !important; }.sup-cfg-row .sup-cfg-note { flex: 1 1 160px; min-width: 140px; margin: 0 !important; }.sup-cfg-row input[type="text"], .sup-cfg-row input:not([type]) { margin: 0 !important; }.sup-cfg-chk {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 15px; color: var(--text-2); white-space: nowrap; cursor: pointer;
}.sup-cfg-chk input { margin: 0 !important; width: auto !important; }.sup-cfg-add { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 4px; }.sup-cfg-add .ghost-btn { font-size: 15px; padding: 6px 14px; }.boss-mode-tag { padding: 10px 14px; font-size: 15px; color: var(--text-3); background: var(--bg-2); border-radius: 8px; margin: 10px; }.admin-toolbar { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }.admin-hint { font-size: 15px; color: var(--text-3); }.im-compose { background: var(--bg-3); border: 1px solid var(--line); border-radius: 12px; padding: 16px; margin: 0 0 12px 0; }.im-compose .seg { flex: 0 1 auto; width: auto; min-width: 240px; max-width: 460px; }.seg { display: inline-flex; gap: 0; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; flex: 1; }.seg-btn { flex: 1; border: none; background: transparent; color: var(--text-2); font-size: 15px; padding: 8px 10px; cursor: pointer; transition: background .15s, color .15s; white-space: nowrap; }.seg-btn:hover { color: var(--text); }.seg-btn.active { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; font-weight: 600; }.im-row { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 8px; }.im-row:last-child { margin-bottom: 0; }.im-row-col { flex-direction: column; align-items: stretch; }.im-label { width: 72px; flex: 0 0 72px; text-align: right; color: var(--text-2); font-size: 15px; padding-top: 9px; }.im-row-col .im-label { text-align: left; padding-top: 0; margin-bottom: 4px; }.im-preview { flex: 1; min-height: 0; background: rgba(255,255,255,.04); border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; margin: 0 0 10px; }.im-preview:empty { display: none; }.im-preview .tag-badge { margin: 0 6px 4px 0; }.im-attach-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 0; }.im-attach-list { display: flex; flex-wrap: wrap; gap: 6px; }.im-attach-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 5px 9px; font-size: 15px; color: var(--text); }.im-attach-chip.link { color: var(--accent); }.im-attach-chip b { color: var(--text-3); font-weight: 700; }.im-history { display: flex; flex-direction: column; gap: 12px; }#imInboxList, #mhList, #imRecordsList { display: flex; flex-direction: column; gap: 12px; }.im-msg { background: var(--bg-3); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }.im-msg-head { font-size: 15px; color: var(--text-2); }.im-msg-head .muted { margin-left: 6px; }.im-msg-subject { font-weight: 600; margin: 8px 0 4px; color: var(--text); }.im-msg-text { font-size: 16px; line-height: 1.7; white-space: pre-wrap; word-break: break-word; color: var(--text); }.im-msg-atts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }.im-att-thumb { max-width: 160px; max-height: 160px; border-radius: 8px; border: 1px solid var(--line); object-fit: cover; }.im-att-media { max-width: 320px; max-height: 240px; border-radius: 8px; }.im-att-file { display: inline-block; padding: 6px 10px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; color: var(--accent); text-decoration: none; font-size: 15px; }.im-msg-links { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 8px; }.im-link { color: var(--accent); text-decoration: none; font-size: 15px; word-break: break-all; }.im-link:hover { text-decoration: underline; }.im-msg-select { display: flex; align-items: flex-start; gap: 10px; }.im-msg-select.sel { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }.im-sel { padding-top: 2px; }.im-sel input { width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer; }.im-star { font-size: 22px; line-height: 1; cursor: pointer; user-select: none; color: var(--text-3); padding-top: 1px; }.im-star.star-red { color: #ff4d4f; }.im-star.star-orange { color: #ff9f0a; }.im-star.star-yellow { color: #ffd60a; }.im-msg-body { flex: 1; min-width: 0; }.im-batch-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px; margin-bottom: 12px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; }.im-batch-bar .muted { margin-right: auto; }.seg-multi .seg-btn.active { background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; border-color: transparent; }.risk-readonly-banner { position: fixed; top: 0; left: 0; right: 0; z-index: 6000; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 9px 18px; background: rgba(28,22,38,.96); color: #fff; border-bottom: 2px solid rgba(255,159,67,.85); box-shadow: 0 4px 18px rgba(0,0,0,.45); }.risk-readonly-banner .risk-ro-title { font-size: 16px; color: #ffd9a8; }body.has-risk-banner #projectWorkspace, body.has-risk-banner #reviewView, body.has-risk-banner #adminView, body.has-risk-banner #bossView { padding-top: 52px; }.risk-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); color: #fff; font-size: 15px; }.risk-ro-actions { display: flex; gap: 8px; }.risk-open-link { color: var(--accent); text-decoration: none; cursor: pointer; }.risk-open-link:hover { text-decoration: underline; }.info-part { display: flex; flex-direction: column; gap: 8px; }.info-part-title { font-size: 15px; font-weight: 700; color: var(--accent); letter-spacing: .5px; margin-bottom: 2px; }.admin-chips { display: flex; flex-wrap: wrap; gap: 10px; }.admin-chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: 20px; background: var(--bg-3); border: 1px solid var(--line); font-size: 16px; }.admin-chip .dot { width: 12px; height: 12px; border-radius: 50%; }.admin-chip .mini-btn { margin-left: 4px; }.admin-chip .chip-name { cursor: pointer; transition: color .15s; }.admin-chip .chip-name:hover { color: var(--accent); }.admin-chip:hover { border-color: var(--accent); }.admin-card-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 12px; }.admin-card-row.stack { flex-direction: column; align-items: stretch; gap: 10px; }.pm-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 4px 2px; }.pm-head .pm-head-name { display: flex; align-items: baseline; gap: 8px; min-width: 0; }.pm-head .pm-head-name b { font-size: 17px; color: var(--text); }.pm-head .pm-head-name .pm-head-count { font-size: 15px; color: var(--text-3); }.pm-head .pm-head-actions { display: flex; gap: 8px; }.pm-table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }.pm-table thead th { background: var(--bg-3); font-size: 15px; color: var(--text-2); text-align: left; padding: 10px 14px; border-bottom: 1px solid var(--line); font-weight: 600; letter-spacing: .5px; }.pm-table tbody td { padding: 10px 14px; border-bottom: 1px solid rgba(255,255,255,.04); font-size: 15px; vertical-align: middle; }.pm-table tbody tr:last-child td { border-bottom: 0; }.pm-table tbody tr:hover { background: rgba(255,255,255,.02); }.pm-table .pm-col-name { display: flex; align-items: center; gap: 8px; min-width: 0; }.pm-table .pm-name-avatar { width: 28px; height: 28px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font-weight: 600; font-size: 15px; flex: 0 0 auto; }.pm-table .pm-name-text { display: flex; flex-direction: column; gap: 1px; min-width: 0; }.pm-table .pm-name-text b { font-size: 15px; color: var(--text); }.pm-table .pm-name-text span { font-size: 15px; color: var(--text-3); }.pm-table .pm-empty { padding: 16px; color: var(--text-3); text-align: center; font-size: 15px; }.row-btns { display: flex; gap: 8px; flex-wrap: nowrap; }.row-actions { display: flex; flex-wrap: nowrap; gap: 8px; justify-content: flex-end; }
/* 部分表格把 .row-actions / .row-btns / .emp-actions 等「按钮容器类」直接写在 <td> 上，
   这些类带 display:flex，会让 td 脱离表格列宽模型、压窄裁切按钮。
   兜底：强制把「直接挂在 td/th 上的」这些类 revert 成 table-cell（主修复在 JS rzEnsureOpMinWidth 里
   用内联 display:table-cell 实现，不依赖具体 class 名；此处覆盖 row-actions/row-btns/emp-actions 三种已知写法，
   以及预 JS 渲染那一瞬间的样式）。内层的 div.xxx-actions 是 div 不是 td，不受影响，照常 flex 排按钮。 */
#adminView table td.row-actions, #bossView table td.row-actions,
#adminView table td.row-btns,   #bossView table td.row-btns,
#adminView table td.emp-actions, #bossView table td.emp-actions,
#adminView table th.row-actions, #bossView table th.row-actions,
#adminView table th.row-btns,   #bossView table th.row-btns,
#adminView table th.emp-actions, #bossView table th.emp-actions {
  display: table-cell; text-align: center; vertical-align: middle; white-space: nowrap;
}

/* 邮箱验证码 / 找回密码 */
.auth-minor-row { display:flex; justify-content:flex-end; margin-top:-5px; }
.auth-text-btn { border:0; background:transparent; color:var(--accent); font:inherit; font-size:15px; padding:2px 0; cursor:pointer; }
.auth-text-btn:hover { text-decoration:underline; }
.auth-code-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:stretch; }
.auth-code-row > input { min-width:0; width:100%; }
.auth-code-row > button { min-width:112px; white-space:nowrap; }
small { font-size: 15px; }

/* 登录页：提示语归入提示框、显式协议确认与真实微信开放平台入口 */
.modal-mask { z-index: 10000 !important; }
.auth-notice .auth-slogan { margin: 0; color: var(--text); text-align: center; font-size: 19px; line-height: 1.5; }
.auth-agree { display: flex; align-items: center; gap: 9px; color: var(--text-2); font-size: 15px; line-height: 1.45; cursor: pointer; }
.auth-form .auth-agree input[type="checkbox"] { width: 17px; height: 17px; flex: 0 0 17px; margin: 0; padding: 0; accent-color: var(--accent); box-shadow: none; }
.auth-doc-link { display: inline; padding: 0; border: 0; background: transparent; color: var(--accent); font: inherit; cursor: pointer; }
.auth-doc-link:hover { text-decoration: underline; }
.auth-divider { display: flex; align-items: center; gap: 12px; color: var(--text-3); font-size: 15px; }
.auth-divider::before, .auth-divider::after { content: ''; height: 1px; flex: 1; background: var(--line); }
.wechat-login-btn { width: 100%; min-height: 44px; border: 1px solid rgba(7,193,96,.55); border-radius: 10px; background: rgba(7,193,96,.12); color: #dfffee; font-size: 16px; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; gap: 9px; transition: .16s ease; }
.wechat-login-btn:not(:disabled):hover { background: rgba(7,193,96,.22); border-color: #07c160; transform: translateY(-1px); }
.wechat-login-btn:disabled, .primary-btn:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
.wechat-login-icon { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #07c160; color: #fff; font-size: 15px; font-weight: 700; }
.wechat-login-btn.loading::after { content: '…'; }
.auth-wechat-status { min-height: 0; color: var(--text-3); font-size: 15px; text-align: center; line-height: 1.45; }
.auth-terms-doc { max-height: 55vh; overflow: auto; line-height: 1.75; color: var(--text-2); }

/* 套餐活动首项：解锁更多总开关 */
.unlock-master-card { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0 0 18px; padding: 18px 20px; border: 1px solid rgba(255,126,179,.34); border-radius: 14px; background: linear-gradient(135deg, rgba(255,126,179,.09), rgba(124,58,237,.08)); }
.unlock-master-title { color: var(--text); font-size: 17px; font-weight: 700; margin-bottom: 6px; }
.unlock-master-desc { color: var(--text-2); font-size: 15px; line-height: 1.55; }
.master-switch { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; cursor: pointer; user-select: none; }
.master-switch input { position: absolute; opacity: 0; pointer-events: none; }
.master-switch-track { position: relative; width: 48px; height: 26px; border-radius: 999px; background: #4d465f; border: 1px solid var(--line); transition: .18s ease; }
.master-switch-knob { position: absolute; left: 3px; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); transition: .18s ease; }
.master-switch input:checked + .master-switch-track { background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: transparent; }
.master-switch input:checked + .master-switch-track .master-switch-knob { transform: translateX(22px); }
.master-switch input:focus-visible + .master-switch-track { outline: 2px solid var(--accent); outline-offset: 2px; }
.master-switch-text { min-width: 48px; color: var(--text-2); font-size: 15px; }
.wechat-login-config { margin-top: 22px; }
@media (max-width: 720px) { .unlock-master-card { align-items: flex-start; flex-direction: column; gap: 14px; } }
/* 上述 td 变回 table-cell 后，按钮不再是 flex 子元素，手动补一点间距避免贴在一起 */
#adminView table td.row-actions > *, #bossView table td.row-actions > *,
#adminView table td.row-btns > *,   #bossView table td.row-btns > *,
#adminView table td.emp-actions > *, #bossView table td.emp-actions > * { margin: 0 3px; }
.action-btn { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--line); color: #fff; border-radius: 6px; padding: 5px 10px; font-size: 15px; cursor: pointer; white-space: nowrap; text-decoration: none; transition: border-color .15s, color .15s; }.action-btn:hover { border-color: var(--accent); color: #fff; }.action-btn.danger { border-color: var(--danger); color: #fff; }.action-btn.danger:hover { background: rgba(239,68,68,.08); }.action-btn.active { border-color: var(--ok); color: #fff; }.admin-table th:last-child,
.admin-table td:last-child { min-width: 300px; }.wf-steps { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }.wf-step { background: var(--bg-2); border: 1px solid var(--line); border-radius: 6px; padding: 4px 10px; font-size: 15px; }.tag-badge { font-size: 15px; background: var(--grad-accent); color: #fff; border-radius: 999px; padding: 3px 9px; margin: 0 6px 4px 0; display: inline-block; white-space: nowrap; line-height: 1.5; }.emp-table { table-layout: auto; }.emp-table th, .emp-table td { padding: 14px 12px; vertical-align: middle; line-height: 1.6; }.emp-table td b { font-size: 16px; }.emp-table .emp-perm-cell { min-width: 240px; white-space: normal; }.emp-table .emp-actions { min-width: 200px; white-space: nowrap; display: flex; gap: 10px; flex-wrap: wrap; }.emp-table .emp-actions .mini-btn { margin-right: 0; }.emp-add-bar { background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }.admin-textarea { width: 100%; box-sizing: border-box; background: var(--bg-2); color: var(--text); border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 16px; line-height: 1.6; resize: vertical; margin-top: 6px; font-family: inherit; }.perm-row { display: inline-flex; align-items: center; gap: 8px; margin: 5px 14px 5px 0; font-size: 16px; color: var(--text-2); }.perm-super { display: flex; align-items: center; gap: 10px; padding: 12px 16px; margin: 12px 0; border-radius: 12px; background: linear-gradient(135deg, rgba(255,126,179,.14), rgba(124,58,237,.14)); border: 1px solid rgba(255,126,179,.35); cursor: pointer; font-size: 16px; color: var(--text); font-weight: 600; }.perm-super input { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; }.perm-super.on { background: linear-gradient(135deg, rgba(255,126,179,.32), rgba(124,58,237,.32)); border-color: var(--accent); }.perm-preset-row { display: flex; align-items: center; gap: 12px; margin: 12px 0 4px; flex-wrap: wrap; }.perm-preset-row .perm-preset-label { font-size: 15px; color: var(--text-2); }.perm-preset-row select { padding: 8px 14px; border-radius: 8px; background: var(--bg-2); color: var(--text); border: 1px solid var(--line); }.perm-groups { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; max-height: 60vh; overflow-y: auto; padding: 4px 2px; }.perm-group { background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; flex: 1 1 280px; min-width: 240px; max-width: 100%; box-sizing: border-box; }@media (min-width: 880px) {.perm-groups-col-3 .perm-group { flex: 1 1 calc(33.333% - 12px); max-width: calc(33.333% - 12px); } }@media (min-width: 600px) {.perm-groups-col-2 .perm-group { flex: 1 1 calc(50% - 12px); max-width: calc(50% - 12px); } }.perm-group-title { font-size: 15px; color: var(--accent); font-weight: 700; margin-bottom: 10px; letter-spacing: .5px; }.perm-tag-row { display: flex; flex-wrap: wrap; gap: 10px; }.perm-tag {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  border-radius: 999px;
  background: var(--bg-3);
  border: 1px solid var(--line);
  color: var(--text-2);
  font: inherit; font-size: 15px;
  cursor: pointer;
  transition: all .15s;
  user-select: none;
  white-space: nowrap;
}.perm-tag:hover { border-color: rgba(255,126,179,.5); color: var(--text); }.perm-tag.on { background: linear-gradient(135deg, rgba(255,126,179,.32), rgba(124,58,237,.32)); border-color: var(--accent); color: #fff; font-weight: 600; box-shadow: 0 2px 8px rgba(255,126,179,.25); }.perm-tag.perm-tag-autolit { animation: permAutoLit 1.2s ease; }@keyframes permAutoLit {0%, 100% { box-shadow: 0 2px 8px rgba(255,126,179,.25); }25%, 75% { box-shadow: 0 0 0 4px rgba(255,126,179,.55), 0 2px 14px rgba(255,126,179,.6); }50% { box-shadow: 0 0 0 8px rgba(255,126,179,.28), 0 2px 18px rgba(255,126,179,.8); }
}.perm-tag .pt-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--line); display: inline-block; }.perm-tag.on .pt-dot { background: #fff; box-shadow: 0 0 6px rgba(255,255,255,.7); }.proj-members { align-items: stretch; }.pm-head { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }.pm-head .mini-btn { margin-left: auto; }.auth-notice { font-size: 15px; color: var(--text-3); background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; margin: 0 0 16px; line-height: 1.6; white-space: pre-wrap; }.status-pill { font-size: 15px; padding: 3px 10px; border-radius: 10px; }.status-pill.ok { background: rgba(52,199,89,.15); color: var(--ok); }.status-pill.bad { background: rgba(255,59,48,.15); color: var(--bad); }.admin-log-list { display: flex; flex-direction: column; gap: 2px; max-height: 62vh; overflow-y: auto; }.admin-log-row { display: grid; grid-template-columns: 170px 140px 1fr; gap: 14px; padding: 10px 12px; border-bottom: 1px solid var(--line); font-size: 15px; }.log-time { color: var(--text-3); }.log-actor { color: var(--accent); }.log-detail { color: var(--text-2); }.muted { color: var(--text-3); }.row { display: flex; align-items: center; gap: 10px; margin: 12px 0; font-size: 16px; color: var(--text-2); }.admin-panel label { display: block; font-size: 15px; color: var(--text-2); margin: 14px 0 7px; }.admin-panel label.primary-btn, .admin-panel label.ghost-btn, .admin-panel label.action-btn,
.modal label.primary-btn, .modal label.ghost-btn, .modal label.action-btn,
.acct-section label.primary-btn, .acct-section label.ghost-btn, .acct-section label.action-btn { color: #fff; }.admin-panel input, .admin-panel select, .admin-panel textarea { width: 100%; padding: 10px 12px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 8px; color: var(--text); font-size: 16px; resize: vertical; }.team-avatar-row { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }.team-avatar-preview { width: 86px; height: 86px; border-radius: 22px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); display: flex; align-items: center; justify-content: center; font-size: 34px; font-weight: 700; color: #fff; background-size: cover; background-position: center; box-shadow: 0 6px 18px rgba(255,126,179,.25); }.team-avatar-actions { display: flex; flex-direction: column; gap: 6px; }.site-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 14px; }.site-tab { padding: 8px 14px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 20px; color: #fff; font-size: 15px; cursor: pointer; }.site-tab.active { color: #fff; background: var(--grad-accent); border-color: transparent; }.site-panes { display: block; }.theme-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 10px; }.theme-grid label { font-size: 15px; color: var(--text-3); display: block; margin: 0 0 5px; }.theme-grid input[type=color] { width: 100%; height: 38px; padding: 2px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 8px; cursor: pointer; }.car-item { border: 1px solid var(--line); border-radius: 10px; padding: 12px; margin-bottom: 12px; background: var(--bg-2); display: grid; gap: 8px; }.car-item input { width: 100%; padding: 8px 10px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 6px; color: var(--text); font-size: 15px; }.pay-block { border: 1px dashed var(--line); border-radius: 10px; padding: 12px; margin: 12px 0; display: grid; gap: 8px; }.pay-block input { width: 100%; padding: 8px 10px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 6px; color: var(--text); font-size: 15px; }body { font-family: "PingFang SC", "Microsoft YaHei", "ZCOOL QingKe HuangYou", system-ui, sans-serif; }.brand-name, .admin-page-title, .empty-state h2, .review-head h2, h1, h2,
.auth-brand, .proj-card .pc-name, .logo { font-family: var(--font-cute); }.brand-name em { font-family: var(--font-round); letter-spacing: .5px; }.logo { font-size: 26px; animation: qPop 2.6s ease-in-out infinite; }@keyframes qPop {0%,100% {transform:translateY(0) rotate(-6deg)}50% {transform:translateY(-3px) rotate(6deg)} }.topbar { background: rgba(29,26,43,.56); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,143,199,.18); }@keyframes fadeUp {from {opacity:0;transform:translateY(10px)}to {opacity:1;transform:translateY(0)} }.auth-card, .proj-card, .admin-view, .empty-state, .modal-card { animation: fadeUp .42s cubic-bezier(.34,1.56,.64,1) both; }.proj-card, .media-row, .car-item, .pay-block, .admin-panel, .site-pane, .auth-card,
.modal-card, .ws-side, .admin-sidebar, .review-side { border-radius: var(--radius); }.proj-card { transition: transform .2s cubic-bezier(.34,1.56,.64,1), border-color .15s, box-shadow .2s; }.proj-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }.media-row { transition: transform .15s ease, background .15s; border-radius: 12px; }.media-row:hover { transform: translateX(3px); }.primary-btn {
  background: var(--grad-accent); color: #fff; border: none;
  border-radius: 999px; padding: 9.6px 24px; font-weight: 400;
  font-size: 16.4px; font-family: var(--font-cute); letter-spacing: 0.5px;
  box-shadow: 0 8px 20px rgba(124,58,237,.35);
  transition: transform .16s cubic-bezier(.34,1.56,.64,1), box-shadow .16s;
}.primary-btn:hover { box-shadow: 0 10px 26px rgba(124,58,237,.55); filter: brightness(1.08); }.primary-btn:active { filter: brightness(.95); }.ghost-btn { border-radius: 999px; background: var(--bg-3); border: 1.5px solid var(--line); color: #fff; transition: transform .15s, border-color .15s, background .15s; }.ghost-btn:hover { border-color: var(--accent); color: #fff; background: rgba(255,126,179,.1); }.ghost-btn.danger { color: #fff; border-color: rgba(255,107,157,.35); }.ghost-btn.danger:hover { background: rgba(255,107,157,.12); border-color: var(--danger); }.ws-side .primary-btn:hover { box-shadow: 0 8px 20px rgba(124,58,237,.45); filter: brightness(1.08); }input, select, textarea { border-radius: 12px; transition: border-color .15s, box-shadow .15s; }.admin-panel input, .admin-panel select, .car-item input, .pay-block input { border-radius: 12px; }input:focus, select:focus, textarea:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(255,126,179,.25); }.version-badge, .brand-tag { border-radius: 999px; background: var(--grad-soft); color: #fff; border: none; padding: 2px 10px; }.tag-badge, .status-pill, .role-badge { border-radius: 999px; padding: 2px 10px; }.site-tab { border-radius: 999px; transition: background .15s; }.site-tab:hover { background: rgba(255,126,179,.18); }.site-tab.active { background: var(--grad-accent); }.avatar, .p-avatar { border-radius: 50%; background-image: var(--grad-accent); box-shadow: 0 2px 10px rgba(255,126,179,.45); border: 2px solid var(--bg-2); }.p-avatar-img { background-size: cover !important; background-position: center !important; background-repeat: no-repeat !important; }.user-chip { border-radius: 999px; padding: 3px 12px; }.mini-btn { border-radius: 6px; min-width: 28px; height: 28px; padding: 0 10px; cursor: pointer; font-size: 15px; display: inline-flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; transition: transform .15s, border-color .15s, color .15s; background: transparent; border: 1px solid var(--line); color: #fff; }.mini-btn:hover { transform: none; border-color: var(--accent); color: #fff; }.mini-btn.danger { border-color: var(--danger); color: #fff; }.mini-btn.danger:hover { background: rgba(239,68,68,.08); }.mini-btn-icon { background: transparent; border: 1px solid var(--line); color: #fff; border-radius: 50%; width: 28px; height: 28px; cursor: pointer; font-size: 16px; padding: 0; display: inline-flex; align-items: center; justify-content: center; transition: border-color .15s, color .15s; }.mini-btn-icon:hover { border-color: var(--accent); color: #fff; }.mini-btn-icon.danger { border-color: var(--danger); color: #fff; }.mini-btn-icon.danger:hover { background: rgba(239,68,68,.08); }.auth-screen { background:
  radial-gradient(circle at 22% 18%, rgba(255,143,199,.20), transparent 52%),
  radial-gradient(circle at 82% 82%, rgba(167,139,250,.20), transparent 52%),
  var(--bg); }.auth-card { border-radius: var(--radius-lg); border: 1px solid rgba(255,143,199,.25); box-shadow: 0 24px 70px rgba(10,6,20,.6); background: rgba(26,23,38,.92); backdrop-filter: blur(8px); }.auth-logo-img { filter: drop-shadow(0 8px 18px rgba(124,58,237,.35)); }* { scrollbar-width: thin; scrollbar-color: rgba(255,143,199,.5) transparent; }*::-webkit-scrollbar { width: 10px; height: 10px; }*::-webkit-scrollbar-track { background: transparent; }*::-webkit-scrollbar-thumb { border-radius: 999px; background: linear-gradient(135deg,#ff8fc7,#a78bfa); border: 2px solid var(--bg-2); }*::-webkit-scrollbar-thumb:hover { background: linear-gradient(135deg,#ff7eb3,#8b7bff); }.admin-panel, .site-pane, .car-item { border: 1px solid rgba(255,143,199,.14); }.acct-scroll { max-height: 72vh; overflow-y: auto; padding-right: 6px; }.order-list, .invoice-list { display: flex; flex-direction: column; gap: 10px; }.order-row, .invoice-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px;
}.order-title, .invoice-title { font-weight: 600; font-size: 17px; }.order-meta, .invoice-meta { font-size: 15px; color: var(--text-3); margin-top: 3px; }.order-action, .invoice-action { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }.primary-btn.sm { padding: 7px 14px; font-size: 15px; }.font-mono { font-family: "SF Mono", Consolas, "Courier New", monospace; }.invFile { padding: 8px 0; color: var(--text-2); }.inv-batch { border: 1px solid var(--line); border-radius: 12px; background: var(--bg-2); padding: 10px 12px; margin-bottom: 14px; }.inv-batch-head { display: flex; align-items: center; gap: 12px; padding-bottom: 10px; border-bottom: 1px dashed var(--line); }.inv-pick-all { display: flex; align-items: center; gap: 7px; font-size: 15px; color: var(--text-2); cursor: pointer; user-select: none; }.inv-pick-all input { width: 15px; height: 15px; accent-color: var(--accent, #4f7cff); cursor: pointer; }.inv-batch-sum { margin-left: auto; font-size: 15px; color: var(--text-3); }.inv-pick-list { display: flex; flex-direction: column; gap: 10px; max-height: 240px; overflow: auto; padding-top: 10px; }.inv-pick {
  display: flex; align-items: center; gap: 10px; cursor: pointer;
  padding: 8px 10px; border-radius: 9px; border: 1px solid transparent; transition: background .15s, border-color .15s;
}.inv-pick:hover { background: rgba(127, 127, 127, .08); }.inv-pick.on { background: rgba(79, 124, 255, .10); border-color: rgba(79, 124, 255, .38); }.inv-pick input { width: 15px; height: 15px; accent-color: var(--accent, #4f7cff); cursor: pointer; flex-shrink: 0; }.inv-pick-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }.inv-pick-title { font-size: 16px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.inv-pick-meta { font-size: 15px; color: var(--text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.inv-pick-amt { font-size: 16px; font-weight: 600; color: var(--text-2); flex-shrink: 0; }.inv-sub-title { font-size: 15px; color: var(--text-3); margin: 4px 0 8px; }.inv-sel-list { display: flex; flex-direction: column; gap: 4px; max-height: 160px; overflow: auto; margin: 6px 0 10px; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; }.inv-sel-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 15px; color: var(--text-2); }.inv-sel-item span:nth-child(2) { color: var(--text-3); flex: 1; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.ws-retain {
  display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0;
  font-size: 15px; color: var(--text-3);
  padding: 4px 10px; border-radius: 999px;
  border: 1px solid var(--line); background: var(--bg-2);
}.ws-retain.warn { color: #ff9500; border-color: rgba(255, 149, 0, .45); background: rgba(255, 149, 0, .10); }.ws-retain.danger { color: #ff3b30; border-color: rgba(255, 59, 48, .45); background: rgba(255, 59, 48, .10); }.ws-retain-btn {
  border: none; cursor: pointer; font-size: 15px; font-weight: 600;
  padding: 3px 9px; border-radius: 999px; color: #fff; background: var(--accent, #4f7cff);
}.ws-retain-btn:hover { filter: brightness(1.1); }.admin-toolbar .ghost-btn.active { border-color: var(--accent); color: var(--accent); background: rgba(255,126,179,.12); }.member-toolbar { align-items: center; }.member-filters { display: flex; flex-wrap: wrap; gap: 10px; flex: 1; justify-content: flex-end; }.member-filters .search-input { min-width: 220px; }.member-batchbar { background: var(--bg-3); border: 1px solid var(--line); border-radius: 12px; padding: 10px 14px; margin-bottom: 16px; }.member-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }.member-card { background: var(--bg-2); border: 1px solid rgba(255,143,199,.14); border-radius: 18px; padding: 16px; transition: transform .18s, box-shadow .18s; }.member-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(139,123,255,.12); }.member-card.disabled { opacity: .68; filter: grayscale(.4); }.m-card-header { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }.m-card-check { width: 18px; height: 18px; accent-color: var(--accent); cursor: pointer; }.m-lock { font-size: 17px; opacity: .65; }.m-badge { font-size: 15px; padding: 3px 9px; border-radius: 12px; line-height: 1.2; white-space: nowrap; }.m-badge.self { background: rgba(52,199,89,.16); color: #5fd97e; }.m-badge.locked { background: rgba(255,159,67,.16); color: #ffb066; }.m-status { font-size: 15px; margin-left: auto; }.member-card.is-self { border-color: rgba(52,199,89,.4); }.m-card-body { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }.m-avatar { width: 56px; height: 56px; border-radius: 18px; background: linear-gradient(135deg, var(--accent), var(--accent-2)); display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 700; color: #fff; flex-shrink: 0; background-size: cover; background-position: center; }.m-names { min-width: 0; }.m-name { font-size: 19px; color: var(--text); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.m-account { font-size: 15px; color: var(--text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 3px; }.m-card-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }.m-role { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 16px; background: rgba(139,123,255,.12); color: #c4baff; font-size: 15px; }.m-dept { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 16px; background: var(--bg-3); color: var(--text-2); font-size: 15px; }.m-card-times { display: flex; flex-direction: column; gap: 4px; font-size: 15px; color: var(--text-3); margin-bottom: 14px; }.m-card-actions { display: flex; flex-wrap: nowrap; gap: 8px; }.m-card-actions .ghost-btn.sm { font-size: 15px; padding: 5px 9px; white-space: nowrap; }.member-empty { grid-column: 1 / -1; text-align: center; padding: 50px 20px; }.member-empty-emoji { font-size: 58px; margin-bottom: 10px; }.member-empty-title { font-size: 24px; color: var(--text); margin-bottom: 6px; }.member-empty-sub { font-size: 16px; color: var(--text-3); margin-bottom: 18px; }.modal h3 { margin-bottom: 14px; }.modal label { display: block; font-size: 17px; color: var(--text-2); margin: 12px 0 6px; }.modal input, .modal select, .modal textarea { width: 100%; padding: 10px 12px; background: var(--bg-3); border: 1px solid var(--line); border-radius: 10px; color: var(--text); font-size: 18px; }.vol-wrap { display: inline-flex; align-items: center; gap: 6px; }.vol-icon { font-size: 18px; cursor: pointer; }.vol-slider { width: 80px; height: 4px; -webkit-appearance: none; appearance: none; background: var(--bg-3); border-radius: 4px; outline: none; cursor: pointer; }.vol-slider::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; width: 14px; height: 14px; border-radius: 50%; background: var(--accent); cursor: pointer; }.vol-slider::-moz-range-thumb { width: 14px; height: 14px; border-radius: 50%; background: var(--accent); cursor: pointer; border: none; }#abLoopBtn.active { background: var(--grad-accent); color: #fff; border-color: transparent; }.shortcuts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 16px 0; }.sc-row { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: var(--bg-3); border-radius: 10px; }.sc-row kbd { display: inline-block; min-width: 50px; padding: 4px 8px; background: var(--bg); border: 1px solid var(--line); border-radius: 6px; font-size: 15px; color: var(--accent); text-align: center; }.sc-row span { font-size: 16px; color: var(--text-2); }.ci-priority { display: inline-flex; align-items: center; gap: 4px; padding: 2px 8px; border-radius: 10px; font-size: 15px; font-weight: 600; }.ci-priority::before { content: ''; width: 6px; height: 6px; border-radius: 50%; }.ci-priority.prio-normal { background: rgba(79,124,255,.15); color: #7aa2ff; }.ci-priority.prio-normal::before { background: #4f7cff; }.ci-priority.prio-must { background: rgba(255,59,48,.15); color: #ff6b6b; }.ci-priority.prio-must::before { background: #ff4d4f; }.ci-priority.prio-praise { background: rgba(46,204,113,.15); color: #34c759; }.ci-priority.prio-praise::before { background: #2ecc71; }.cib-priority { padding: 6px 8px; border-radius: 8px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); font-size: 15px; }.mc-priority-badge { font-size: 16px; vertical-align: middle; }.hrr-upload-wrap { border: 1px dashed var(--line); border-radius: 10px; padding: 12px; background: rgba(0,0,0,.2); transition: .15s; }.hrr-upload-wrap.dragover { border-color: var(--accent); background: rgba(255,126,179,.1); }.hrr-tip { font-size: 15px; color: var(--text-2); margin-bottom: 8px; }.hrr-previews { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }.hrr-thumb { position: relative; width: 80px; height: 80px; border-radius: 8px; overflow: hidden; border: 1px solid var(--line); }.hrr-thumb img { width: 100%; height: 100%; object-fit: cover; }.hrr-del { position: absolute; top: 2px; right: 2px; width: 20px; height: 20px; border-radius: 50%; border: none; background: rgba(0,0,0,.6); color: #fff; cursor: pointer; font-size: 16px; line-height: 1; display: flex; align-items: center; justify-content: center; }#wsAssets { position: relative; }.drop-zone { position: absolute; inset: 0; z-index: 40; border: 3px dashed var(--accent-2); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; background: var(--accent-soft); }.drop-zone:not(.hidden) { box-shadow: inset 0 0 0 9999px rgba(120,170,255,.10); animation: dzpulse 1.3s ease-in-out infinite; }@keyframes dzpulse {0%,100% { border-color: var(--accent-2); }50% { border-color: var(--accent); } }.dz-inner { text-align: center; font-size: 20px; color: var(--accent); font-weight: 600; padding: 0 16px; }.upload-progress-item { background: var(--bg-3); border-radius: 10px; padding: 10px 14px; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; }.upi-name { flex: 1; font-size: 15px; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.upi-bar-track { flex: 2; height: 6px; background: var(--bg); border-radius: 4px; overflow: hidden; }.upi-bar-fill { height: 100%; background: var(--grad-accent); border-radius: 4px; transition: width 0.2s; }.upi-pct { min-width: 40px; text-align: right; font-size: 15px; color: var(--accent); }.batch-toolbar { display: flex; align-items: center; gap: 10px; padding: 8px 14px; background: var(--accent-soft); border: 1px solid var(--accent-2); border-radius: 10px; margin-bottom: 10px; flex-wrap: wrap; }.batch-toolbar #batchCount { font-size: 16px; color: var(--accent); font-weight: 600; }.page-select-all { display: inline-flex; align-items: center; gap: 5px; font-size: 15px; color: var(--text-2); cursor: pointer; user-select: none; padding: 5px 8px; border-radius: 8px; background: rgba(255,255,255,.04); position: relative; z-index: 3; }.page-select-all:hover { background: rgba(255,255,255,.09); color: var(--text); }.page-select-all input { width: 17px; height: 17px; cursor: pointer; }.media-check { width: 16px; height: 16px; cursor: pointer; }.mc-select { padding: 12px 10px 0; display: flex; align-items: flex-start; cursor: pointer; }.media-table th:first-child, .media-table td:first-child { width: 42px; text-align: center; cursor: pointer; }.media-table th:first-child .col-resizer { display: none; }.media-table th:first-child input, .media-table td:first-child input { width: 16px; height: 16px; cursor: pointer; }.subtitle-toggle-btn { margin: 10px 0 0; }.rh-right .subtitle-toggle-btn { margin: 0; }.brn-radios { display: flex; flex-direction: column; gap: 10px; margin: 6px 0 14px; }.brn-radio { font-size: 15px; color: var(--text); cursor: pointer; display: flex; align-items: center; gap: 8px; }.brn-radio input { width: 16px; height: 16px; }.brn-box { margin-bottom: 8px; }.brn-box label { display: block; font-size: 15px; color: var(--text-2); margin-bottom: 5px; }.brn-box input { width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 8px 10px; font-size: 15px; }.brn-tip { font-size: 15px; color: var(--text-3); margin-top: 6px; line-height: 1.5; }.brn-tip b { color: #ff7eb3; }.media-card.selected { outline: 2px solid var(--accent); outline-offset: 2px; }.mc-select { position: absolute; top: 8px; left: 8px; z-index: 2; }.mc-select input[type="checkbox"] { width: 16px; height: 16px; cursor: pointer; }.board-container { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 10px; min-height: 300px; }.board-col { min-width: 220px; flex: 0 0 220px; background: var(--bg-2); border-radius: var(--radius); display: flex; flex-direction: column; }.bc-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px; border-bottom: 1px solid var(--line); }.bc-title { font-size: 16px; font-weight: 600; color: var(--text); }.bc-count { font-size: 15px; color: var(--text-3); background: var(--bg-3); padding: 2px 8px; border-radius: 10px; }.bc-body { flex: 1; padding: 8px; overflow-y: auto; display: flex; flex-direction: column; gap: 10px; }.bc-card { background: var(--bg-3); border-radius: 10px; padding: 10px 12px; cursor: pointer; transition: transform 0.15s; }.bc-card:hover { transform: translateY(-2px); }.bc-card-name { font-size: 15px; color: var(--text); font-weight: 500; }.bc-card-meta { font-size: 15px; color: var(--text-3); margin-top: 4px; }.bc-empty { text-align: center; color: var(--text-3); font-size: 15px; padding: 20px; }.trash-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--bg-3); border-radius: 10px; margin-bottom: 8px; }.tr-name { flex: 1; font-size: 16px; color: var(--text); }.tr-date { font-size: 15px; color: var(--text-3); }#reviewView.simple-mode .anno-tools,
#reviewView.simple-mode #reviewDivider { display: none !important; }#reviewView.simple-mode .review-stage { width: 100% !important; }#reviewView.simple-mode .controls { justify-content: center; }#reviewView.simple-mode #speedSelect,
#reviewView.simple-mode #abLoopBtn,
#reviewView.simple-mode #shortcutsBtn,
#reviewView.simple-mode #annotateBtn { display: none; }#reviewView.simple-mode .comment-input-bar { padding: 8px 12px; }#reviewView.simple-mode .comment-input-bar .anno-tag-select { display: none; }#reviewView.simple-mode .comment-input-bar .prio-select { display: none; }#filterAssigned.active { background: var(--grad-accent); color: #fff; border-color: transparent; }@media (max-width: 768px) {:root { --radius: 12px; --radius-lg: 16px; }.sidebar { position: fixed; bottom: 0; left: 0; right: 0; top: auto; width: 100%; height: 56px; flex-direction: row; align-items: center; justify-content: space-around; padding: 0 8px; z-index: 100; border-right: none; border-top: 1px solid var(--line); overflow-x: auto; }.sidebar .brand { display: none; }.sidebar nav { flex-direction: row; gap: 4px; }.sidebar .nav-item { padding: 6px 10px; font-size: 15px; }.sidebar .nav-item span { display: none; }.sidebar .sidebar-section-title { display: none; }.sidebar .buy-plan-btn { display: none; }.main-area { margin-left: 0; margin-bottom: 56px; }.hub-grid { grid-template-columns: 1fr !important; }.hub-grid.list-mode .hub-card { padding: 10px; }.ws-head { flex-wrap: wrap; gap: 8px; }.ws-tabs { flex-wrap: wrap; }.ws-panel-head { flex-wrap: wrap; gap: 6px; }.asset-tools { flex-wrap: wrap; gap: 4px; }.asset-tools .search-input { width: 100%; }.ws-content { padding: 10px; }.media-grid { grid-template-columns: 1fr !important; }.media-table { font-size: 15px; }.media-table th, .media-table td { padding: 4px 6px; }.review-head { flex-wrap: wrap; padding: 8px 10px; }.rh-right { flex-wrap: wrap; gap: 4px; }.rh-right .ghost-btn { padding: 4px 8px; font-size: 15px; }.review-body { flex-direction: column !important; --side-w: 100% !important; }.review-stage { width: 100% !important; height: 40vh !important; }.review-divider { display: none !important; }.comments-panel { width: 100% !important; height: auto !important; max-height: 35vh; }.controls { flex-wrap: wrap; gap: 4px; padding: 6px 8px; }.controls .seek-wrap { order: -1; width: 100%; }.vol-slider { width: 50px; }.comment-input-bar { flex-wrap: wrap; gap: 4px; padding: 6px 8px; }.cib-tools { flex-wrap: wrap; }.cib-input { width: 100% !important; }.admin-view { flex-direction: column !important; }.admin-sidebar { width: 100% !important; height: auto; position: relative; }.admin-nav { flex-direction: row; flex-wrap: wrap; gap: 4px; }.boss-view { flex-direction: column !important; }.boss-sidebar { width: 100% !important; height: auto; }.modal-card { width: 95vw !important; max-width: 95vw !important; }.board-container { flex-direction: column; }.board-col { flex: 1; min-width: auto; }.shortcuts-grid { grid-template-columns: 1fr; }
}@media (max-width: 480px) {.topbar { padding: 0 8px; }.topbar .brand { font-size: 18px; }.ws-panel-head { font-size: 15px; }.ghost-btn, .primary-btn { padding: 5px 10px; font-size: 15px; }.ctrl-btn { padding: 4px 6px; font-size: 16px; }.timecode, .dur { font-size: 15px; }.speed { font-size: 15px; padding: 2px 4px; }
}.guide-canvas { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 3; }.anno-canvas { z-index: 5; }.media-meta { position: absolute; top: 10px; right: 12px; z-index: 6; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; max-width: 62%; padding: 8px 12px; border-radius: 8px; background: rgba(10,16,26,.72); color: #dfe8f3; font-size: 16px; line-height: 1.5; backdrop-filter: blur(4px); border: 1px solid rgba(255,255,255,.08); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }.media-meta b { color: #8fd0ff; font-weight: 700; }.media-meta .mm-ar { color: #ffd479; }.media-meta .mm-sep { color: rgba(255,255,255,.3); }.media-meta .mm-ep-btn { padding: 2px 9px; border-radius: 6px; border: 1px solid rgba(143,208,255,.45); background: rgba(143,208,255,.12); color: #8fd0ff; font-size: 15px; cursor: pointer; transition: .12s; }.media-meta .mm-ep-btn:hover { background: rgba(143,208,255,.28); border-color: #8fd0ff; }.media-meta .mm-ep-dd { position: relative; display: inline-block; }.media-meta .mm-ep-trigger {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 11px; border-radius: 10px;
  border: 1px solid rgba(255,126,179,.45);
  background: linear-gradient(135deg, rgba(255,143,199,.18) 0%, rgba(124,58,237,.18) 100%);
  color: #ffadd6; font-size: 15px; cursor: pointer;
  transition: .15s;
  font-family: var(--font-cute);
  letter-spacing: .5px;
}.media-meta .mm-ep-trigger:hover {
  background: linear-gradient(135deg, rgba(255,143,199,.32) 0%, rgba(124,58,237,.32) 100%);
  border-color: var(--accent);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(255,126,179,.25);
}.media-meta .mm-ep-dd.open .mm-ep-trigger {
  background: linear-gradient(135deg, var(--accent) 0%, var(--accent-2) 100%);
  border-color: var(--accent);
  color: #fff;
}.media-meta .mm-ep-arrow { display: inline-block; font-size: 15px; transition: transform .2s cubic-bezier(.34,1.56,.64,1); }.media-meta .mm-ep-dd.open .mm-ep-arrow { transform: rotate(180deg); }.media-meta .mm-ep-pop {
  position: absolute; top: calc(100% + 8px); right: 0;
  display: flex; flex-direction: column; gap: 2px;
  padding: 7px; min-width: 160px; max-width: 220px;
  max-height: min(420px, calc(100vh - 180px));
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  background: var(--panel);
  border: 1px solid rgba(255,126,179,.35);
  border-radius: var(--radius);
  box-shadow: 0 14px 44px rgba(10,6,20,.55), inset 0 1px 0 rgba(255,255,255,.05);
  z-index: 50;
  opacity: 0; transform: translateY(-8px) scale(.96); transform-origin: top right;
  pointer-events: none;
  transition: opacity .15s ease-out, transform .22s cubic-bezier(.34,1.56,.64,1);
}.media-meta .mm-ep-dd.open .mm-ep-pop {
  opacity: 1; transform: translateY(0) scale(1); pointer-events: auto;
}.media-meta .mm-ep-opt {
  text-align: left; display: flex; align-items: center;
  min-height: 42px; padding: 5px 14px; border: none; background: transparent;
  color: var(--text); font-size: 15px; line-height: 1.5; border-radius: 10px;
  cursor: pointer; transition: .12s;
  font-family: var(--font-cute);
  letter-spacing: .3px;
  width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}.media-meta .mm-ep-opt:hover {
  background: linear-gradient(90deg, rgba(255,143,199,.22) 0%, rgba(124,58,237,.22) 100%);
  color: #fff;
  transform: translateX(2px);
}.media-meta .mm-ep-opt:active { transform: translateX(2px) scale(.97); }.media-meta .mm-ep-opt span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.review-head .media-meta { position: static; display: inline-flex; max-width: none; padding: 6px 12px; background: rgba(10,16,26,.55); font-size: 16px; }.review-original-download { display: inline-flex; align-items: center; min-height: 26px; padding: 2px 10px; border: 1px solid rgba(255,126,179,.45); border-radius: 8px; background: linear-gradient(135deg, rgba(255,126,179,.22), rgba(124,92,255,.22)); color: #ffd4e8; font-family: var(--font-normal); font-weight: 700; text-decoration: none; white-space: nowrap; }.review-original-download:hover { color: #fff; border-color: var(--accent); background: linear-gradient(135deg, rgba(255,126,179,.38), rgba(124,92,255,.38)); }.mobile-original-download { display: none; }.guide-panel { position: absolute; right: 16px; bottom: 70px; z-index: 30; width: 250px; padding: 12px; border-radius: 12px; background: rgba(14,20,30,.94); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 10px 30px rgba(0,0,0,.45); color: var(--text); }.guide-panel.hidden { display: none; }.gp-title { font-size: 15px; color: var(--text-2); margin-bottom: 10px; }.gp-chips { display: flex; flex-wrap: wrap; gap: 8px; }.gp-chip { padding: 6px 11px; border-radius: 999px; border: 1px solid var(--line); background: var(--bg-3); color: var(--text); font-size: 15px; cursor: pointer; transition: .15s; }.gp-chip:hover { border-color: var(--accent); }.gp-chip.active { background: var(--grad-accent); border-color: transparent; color: #fff; }.gp-foot { margin-top: 10px; text-align: right; }.gp-clear { background: none; border: none; color: var(--text-3); font-size: 15px; cursor: pointer; text-decoration: underline; }.gp-clear:hover { color: var(--danger); }#guideBtn.active { border-color: var(--accent); color: var(--accent); }#guideBtn { margin-left: auto; flex-shrink: 0; }.attach-preview { display: inline-flex; align-items: center; gap: 6px; max-width: 90%; }.attach-thumb { height: 26px; width: 26px; object-fit: cover; border-radius: 5px; border: 1px solid rgba(255,255,255,.3); flex: 0 0 auto; }.attach-name { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.attach-remove { cursor: pointer; font-weight: 700; opacity: .85; flex: 0 0 auto; }.attach-remove:hover { opacity: 1; }.ai-review-btn { color: #b07cff; border-color: rgba(176,124,255,.5); }.ai-review-btn:hover { background: rgba(176,124,255,.15); }.ai-field { display: flex; flex-direction: column; gap: 6px; margin: 14px 0 4px; font-size: 15px; color: var(--text-2); }.ai-field > span { font-weight: 600; }.ai-input { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 9px 11px; font-size: 16px; width: 100%; box-sizing: border-box; }.ai-checklist-input { width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 9px 11px; font-size: 15px; line-height: 1.6; resize: vertical; box-sizing: border-box; font-family: inherit; }.ai-risk-badge { display: inline-flex; align-items: center; padding: 3px 10px; border-radius: 999px; font-size: 15px; font-weight: 700; white-space: nowrap; }.ai-risk-badge.risk-high { background: rgba(255,59,48,.18); color: #ff6b60; border: 1px solid rgba(255,59,48,.5); }.ai-risk-badge.risk-mid { background: rgba(255,149,0,.18); color: #ffb340; border: 1px solid rgba(255,149,0,.5); }.ai-risk-badge.risk-low { background: rgba(52,199,89,.18); color: #5bd97f; border: 1px solid rgba(52,199,89,.5); }.ai-risk-badge.hidden { display: none; }.stage.script-mode,
.stage.audio-mode { width: 100%; height: 100%; }.stage.audio-mode { display: flex; flex-direction: column; align-items: stretch; justify-content: center; gap: 10px; padding: 10px 0; box-sizing: border-box; }.stage.audio-mode .wave-canvas,
.stage.audio-mode .spectrum-canvas { width: 100%; }.stage.audio-mode .anno-canvas,
.stage.audio-mode .guide-canvas { display: none; }.spectrum-canvas { height: min(35vh, 240px); min-height: 120px; background: var(--bg-3); border-radius: 8px; cursor: default; }.stage.script-mode video,
.stage.script-mode .media-img,
.stage.script-mode .wave-canvas,
.stage.script-mode .guide-canvas,
.stage.script-mode .anno-canvas { pointer-events: none; }.script-reader { position: absolute; inset: 0; overflow: auto; background: #1e1e1e; color: #d4d4d4; font-family: 'Consolas','SF Mono','Menlo',monospace; font-size: 16px; line-height: 1.75; z-index: 5; }.script-toolbar {
  position: absolute;
  right: 16px;                
  bottom: 56px;               
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(22, 22, 22, .92);
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 10px;
  z-index: 8;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .35);
}.script-toolbar.hidden { display: none; }.script-tb-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  background: rgba(255, 255, 255, .08);
  border: 1px solid rgba(255, 255, 255, .14);
  color: var(--text);
  font-weight: 700;
  font-size: 16px;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: background .12s, color .12s, transform .1s;
  min-width: 32px;
  min-height: 30px;
}.script-tb-btn:hover { background: rgba(255, 255, 255, .15); }.script-tb-btn:active { transform: scale(.96); }.script-tb-btn small { font-size: 15px; opacity: .9; }.script-tb-btn.active { background: var(--grad-accent); color: #fff; border-color: transparent; }.script-tb-level { color: var(--text); font-size: 15px; min-width: 36px; text-align: center; font-variant-numeric: tabular-nums; }.script-tb-sep {
  width: 1px;
  height: 18px;
  background: rgba(255, 255, 255, .18);
  margin: 0 2px;
}.script-tb-speed {
  width: 96px;
  accent-color: var(--accent);
  cursor: pointer;
  margin: 0;
}.script-tb-speed-label {
  font-size: 15px;
  color: var(--text);
  font-variant-numeric: tabular-nums;
  min-width: 36px;
  text-align: right;
}.script-reader .sr-loading, .script-reader .sr-error { padding: 40px; text-align: center; color: #888; }.script-reader .sr-error { color: #ff6b6b; }.sr-scanned-notice { margin: 10px 18px 14px; padding: 10px 14px; border-radius: 8px; background: rgba(255,176,32,.14); border: 1px solid rgba(255,176,32,.5); color: #ffce7a; font-size: 15px; line-height: 1.5; }.sr-lines { padding: 14px 0 60vh; }.sr-row { display: flex; gap: 14px; padding: 2px 18px; cursor: text; border-left: 3px solid transparent; transition: background .12s; }.sr-row:hover { background: rgba(255,255,255,.05); }.sr-row.active { background: rgba(79,124,255,.18); border-left-color: #4f7cff; }.sr-row.has-comment { border-left-color: #ffb020; }.sr-row.has-comment.resolved { border-left-color: #34c759; }.sr-num { flex: 0 0 44px; text-align: right; color: #5a5a5a; user-select: none; }.sr-text { flex: 1; white-space: pre-wrap; word-break: break-word; }.sr-row.empty { min-height: 6px; }.sr-row.empty .sr-text { min-height: 6px; }.sr-row.scene { margin-top: 22px; padding-top: 10px; border-top: 1px solid rgba(124,196,255,.18); }.sr-row.scene .sr-text { color: #7cc4ff; font-weight: 700; letter-spacing: .5px; }.sr-row.transition { margin-top: 12px; }.sr-row.transition .sr-text { text-align: right; color: #9aa0a6; letter-spacing: 1px; }.sr-row.character { margin-top: 10px; }.sr-row.character .sr-text { margin-left: 56px; color: var(--text); font-weight: 700; }.sr-row.character-inline { margin-top: 10px; }.sr-row.character-inline .sr-text { margin-left: 56px; }.sr-row.character-inline .sr-char { color: var(--text); font-weight: 700; margin-right: 8px; }.sr-row.character-inline .sr-parenthetical {
  color: #9aa0a6;
  font-weight: 400;
  margin-right: 4px;
}.sr-row.character-inline .sr-sep {
  color: #9aa0a6;
  font-weight: 400;
}.sr-row.character-inline .sr-dlg { color: #ffd479; font-weight: 700; }.sr-row.character-inline .sr-target {
  color: #ffd479;
  font-weight: 400;
}.sr-row.action { margin-top: 4px; }.sr-row.action .sr-text { margin-left: 56px; margin-right: 24px; color: var(--text); font-weight: 400; }.sr-row.dialogue { margin-top: 4px; }.sr-row.dialogue .sr-text { margin-left: 100px; margin-right: 48px; color: #ffd479; font-weight: 700; }.sr-row.parenthetical { margin-top: 2px; }.sr-row.parenthetical .sr-text { margin-left: 100px; margin-right: 48px; font-style: italic; color: #9aa0a6; }.sr-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 18px;
  padding: 12px 16px 14px;
  margin: 0 0 10px;
  background: rgba(124, 196, 255, 0.06);
  border: 1px solid rgba(124, 196, 255, 0.22);
  border-radius: 8px;
  font-size: 15px;
  color: var(--text-2);
}.sr-stats .stat-item { display: inline-flex; align-items: baseline; gap: 6px; }.sr-stats .stat-item b { color: #ffd479; font-weight: 700; font-size: 17px; }.sr-stats .stat-item.stat-action b { color: #7cc4ff; }.sr-stats .stat-label { color: #9aa0a6; font-size: 15px; }.sr-stats-episode {
  background: rgba(176, 124, 255, 0.10);
  border-color: rgba(176, 124, 255, 0.40);
  padding: 10px 18px 12px;
  margin: 10px 0 8px;
  font-size: 15px;
  align-items: baseline;
}.sr-stats-episode .stat-ep-label {
  color: #b07cff;
  font-weight: 700;
  font-size: 15px;
  margin-right: 12px;
  letter-spacing: .5px;
}.sr-stats-episode .stat-item b { font-size: 17px; }.sr-stats-episode .stat-label { font-size: 15px; }.ai-progress { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 26px 10px; color: var(--text-2); }.ai-spinner { width: 38px; height: 38px; border: 4px solid rgba(176,124,255,.25); border-top-color: #b07cff; border-radius: 50%; animation: ai-spin .8s linear infinite; }@keyframes ai-spin {to { transform: rotate(360deg); } }#aiProgText { text-align: center; font-size: 15px; line-height: 1.6; max-width: 320px; }.ai-summary { background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; font-size: 16px; line-height: 1.7; margin: 12px 0 6px; }.ai-sub { font-size: 15px; color: var(--text-2); margin: 0 0 10px; }.ai-section { margin: 16px 0; }.ai-section h4 { margin: 0 0 10px; font-size: 16px; color: var(--accent); }.ai-empty { color: var(--text-3); font-size: 15px; padding: 6px 0; }.ai-issue { border: 1px solid var(--line); border-left-width: 4px; border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; background: var(--bg-2); }.ai-issue.sev-high { border-left-color: #ff453a; }.ai-issue.sev-mid { border-left-color: #ff9f0a; }.ai-issue.sev-low { border-left-color: #ffd60a; }.ai-issue-main { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.ai-issue-time { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; background: var(--bg-3); padding: 2px 8px; border-radius: 6px; font-size: 15px; color: var(--text); }.ai-issue-title { font-weight: 600; font-size: 15px; }.ai-sev { font-size: 15px; padding: 1px 8px; border-radius: 999px; margin-left: auto; }.ai-sev.sev-high { background: rgba(255,69,58,.18); color: #ff6b60; }.ai-sev.sev-mid { background: rgba(255,159,10,.18); color: #ffb340; }.ai-sev.sev-low { background: rgba(255,214,10,.18); color: #ffe066; }.ai-issue-desc { font-size: 15px; color: var(--text-2); margin: 6px 0 8px; line-height: 1.6; }.ai-to-comment { background: rgba(176,124,255,.15); border: 1px solid rgba(176,124,255,.5); color: #c9a6ff; border-radius: 7px; padding: 4px 12px; font-size: 15px; cursor: pointer; }.ai-to-comment:hover { background: rgba(176,124,255,.3); }.ai-scene { display: flex; gap: 12px; align-items: baseline; padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: 15px; }.ai-scene-time { font-family: ui-monospace, monospace; color: var(--text-3); flex: 0 0 auto; }.ai-scene-desc { flex: 1; color: var(--text); }.ai-shot { flex: 0 0 auto; color: var(--accent); font-size: 15px; }.ai-custom { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; background: var(--bg-2); }.ai-custom.pass { border-left: 4px solid #34c759; }.ai-custom.fail { border-left: 4px solid #ff453a; }.ai-custom-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.ai-custom-pass { font-weight: 700; font-size: 15px; }.ai-custom.pass .ai-custom-pass { color: #5bd97f; }.ai-custom.fail .ai-custom-pass { color: #ff6b60; }.ai-custom-point { font-weight: 600; font-size: 15px; flex: 1; }.ai-custom-time { font-family: ui-monospace, monospace; color: var(--text-3); font-size: 15px; }.ai-custom-result { font-size: 15px; color: var(--text-2); margin: 6px 0 8px; line-height: 1.6; }.ai-raw { white-space: pre-wrap; word-break: break-word; background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 12px; font-size: 15px; max-height: 60vh; overflow: auto; }.hub-welcome { display: flex; flex-direction: column; gap: 10px; }.hub-welcome h1 { font-size: 36px; font-weight: 800; margin: 0; font-family: var(--font-cute); }.hub-welcome p { margin: 0; color: var(--text-2); font-size: 18px; transition: opacity .4s ease; }.hub-welcome p.tip-fade { opacity: 0; }.hub-create-btn { margin: 18px 0 14px; }.hub-create-fixed { margin: 0 0 16px; width: fit-content; }.hub-head-actions { display: flex; align-items: center; gap: 10px; }.hub-float-btn {
  width: 38px; height: 38px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bg-3); color: var(--text); border: 1px solid var(--line);
  font-size: 18px; cursor: pointer; transition: background .15s, border-color .15s, color .15s, transform .15s;
}.hub-float-btn:hover { background: var(--accent); color: #fff; border-color: var(--accent); transform: translateY(-2px); }.hub-stats-bar {
  display: flex; gap: 12px; margin-bottom: 22px; width: fit-content;
  background: rgba(29,26,43,0.72); backdrop-filter: blur(8px);
  border: 1px solid var(--line); border-radius: 14px; padding: 12px 18px;
}.hub-stats-bar .hs-item {
  display: flex; align-items: center; gap: 6px; padding: 7px 16px;
  background: rgba(255,255,255,0.04); border-radius: 10px; min-width: 78px;
}.hub-stats-bar .hs-item b { font-size: 24px; font-weight: 800; color: #fff; }.hub-stats-bar .hs-item span { font-size: 15px; color: var(--text-3); }.hub-dashboard { display: grid; grid-template-columns: 1.1fr 0.85fr 0.85fr; gap: 12px; align-items: start; margin-top: 130px; max-width: 1300px; }.hub-all-projects { margin-top: 22px; }.hub-all-projects .ds-head { display: flex; align-items: center; justify-content: space-between; }.ds-head-actions { display: flex; align-items: center; gap: 10px; }.dash-section {
  background: rgba(26,23,38,0.82); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px; backdrop-filter: blur(10px); overflow: hidden;
  display: flex; flex-direction: column; height: 330px; min-height: 330px;
}.ds-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,0.06);
}.ds-title { font-size: 17px; font-weight: 700; color: #fff; font-family: var(--font-cute); }.ds-more { background: none; border: none; color: var(--text-2); font-size: 15px; cursor: pointer; }.ds-more:hover { color: var(--accent); }.dash-body { padding: 12px 14px; flex: 1; overflow: auto; min-height: 0; }.dash-col.dash-left .dash-body { overflow: hidden; }.recent-project-card {
  background: rgba(255,255,255,0.035); border: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px; overflow: hidden;
  display: flex; align-items: stretch; gap: 14px;
  padding: 12px; cursor: pointer;
  transition: transform .15s ease, background .15s ease, box-shadow .15s ease, border-color .15s ease;
}.recent-project-card:hover {
  background: rgba(255,255,255,0.055);
  border-color: rgba(255,255,255,0.14);
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.22);
}.recent-project-card:active { transform: translateY(0); }.rpc-left {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; gap: 8px;
}.rpc-cover-wrap {
  width: 100%;
  display: flex; align-items: center; justify-content: center;
}.rpc-cover {
  width: 90%; margin: 0 auto; aspect-ratio: 16/9; object-fit: cover;
  border-radius: 12px; background: linear-gradient(135deg,#2a233f,#3d3658);
  display: block;
}.rpc-cover.placeholder {
  display: flex; align-items: center; justify-content: center;
  font-size: 32px; color: rgba(255,255,255,0.22);
}.rpc-title-row {
  display: flex; align-items: center; gap: 6px;
  min-width: 0; margin-top: 8px;
}.rpc-dot { width: 9px; height: 9px; border-radius: 3px; flex-shrink: 0; }.rpc-title-row h3 {
  margin: 0; font-size: 19px; font-weight: 700; color: #fff;
  line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
  flex: 1;
}.rpc-star { color: #facc15; font-size: 15px; flex-shrink: 0; }.rpc-created {
  font-size: 15px; color: var(--text-3); margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}.rpc-sep { margin: 0 12px; opacity: .5; }.rpc-right {
  flex: 0 0 112px; min-width: 0;
  display: flex; flex-direction: column; justify-content: space-between;
  gap: 10px;
}.rpc-cat {
  align-self: flex-start;
  font-size: 15px; color: var(--text-2);
  background: rgba(255,255,255,0.08); padding: 2px 8px;
  border-radius: 20px; border: 1px solid rgba(255,255,255,0.05);
}.rpc-stats {
  display: flex; flex-direction: column; gap: 6px;
}.rpc-stat {
  background: rgba(0,0,0,0.18); border-radius: 8px;
  padding: 5px 10px;
  border: 1px solid rgba(255,255,255,0.04);
  display: flex; align-items: baseline; justify-content: space-between;
}.rpc-stat b { font-size: 18px; font-weight: 800; color: #fff; line-height: 1.1; }.rpc-stat span { font-size: 15px; color: var(--text-3); }.rpc-foot {
  display: flex; align-items: center; justify-content: space-between;
  min-width: 0; gap: 6px;
}.rpc-members {
  display: flex; align-items: center;
  padding-left: 6px; min-width: 0; overflow: hidden;
}.rpc-members .p-avatar {
  width: 24px; height: 24px; border-radius: 50%; font-size: 15px;
  margin-left: -8px; border: 2px solid rgba(36,32,52,0.9);
  box-sizing: border-box;
}.rpc-member-more {
  width: 24px; height: 24px; border-radius: 50%;
  margin-left: -8px; border: 2px solid rgba(36,32,52,0.9);
  box-sizing: border-box;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; color: #fff;
  background: rgba(255,255,255,0.16);
}.rpc-arrow {
  font-size: 20px; color: var(--text-3);
  transition: transform .15s ease, color .15s ease;
}.recent-project-card:hover .rpc-arrow {
  color: var(--accent); transform: translateX(3px);
}.pending-list { display: flex; flex-direction: column; gap: 10px; }.pending-empty { color: var(--text-3); font-size: 15px; text-align: center; padding: 24px 0; }.pending-item {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px;
  background: rgba(255,255,255,0.04); border-radius: 10px; cursor: pointer;
  border-left: 3px solid transparent; transition: .15s;
}.pending-item:hover { background: rgba(255,255,255,0.08); }.pending-item.status-待审阅 { border-left-color: var(--text-3); }.pending-item.status-需修改 { border-left-color: var(--warn); }.pending-item.status-comment { border-left-color: var(--accent); }.pi-icon { width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.06); font-size: 16px; flex: 0 0 auto; }.pi-main { flex: 1; min-width: 0; }.pi-title { font-size: 15px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.pi-meta { font-size: 15px; color: var(--text-3); margin-top: 2px; }.pi-count { font-size: 15px; background: rgba(255,107,157,.18); color: var(--danger); padding: 2px 7px; border-radius: 999px; }.activity-feed { display: flex; flex-direction: column; gap: 10px; }.activity-empty { color: var(--text-3); font-size: 15px; text-align: center; padding: 24px 0; }.activity-item { display: flex; gap: 10px; font-size: 15px; }.activity-avatar {
  width: 28px; height: 28px; border-radius: 50%; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center; font-size: 15px; background: var(--bg-3);
}.activity-avatar.img { background-size: cover; background-position: center; }.activity-main { flex: 1; min-width: 0; line-height: 1.45; }.activity-main b { font-weight: 600; color: #fff; }.activity-target { color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.activity-line { color: var(--text-1); }.activity-line .act-project { color: #ffd166; font-weight: 700; }.activity-line .act-actor { color: #ff8fc7; font-weight: 700; }.activity-line .act-file { color: #c084fc; font-weight: 600; }.rep-tl-text .act-project { color: #ffd166; font-weight: 700; }.activity-line .act-node-time, .rep-tl-text .act-node-time { color: #ffab70; font-weight: 600; }.activity-line .act-node-remain, .rep-tl-text .act-node-remain { color: #ff7a45; font-weight: 800; }.activity-time { font-size: 15px; color: #8ad6c0; margin-top: 2px; }@media (max-width: 1100px) {.hub-dashboard { grid-template-columns: 1fr 1fr; }.dash-col.dash-left { grid-column: 1 / -1; }
}@media (max-width: 760px) {.hub-dashboard { grid-template-columns: 1fr; }.hub-stats-bar { width: 100%; flex-wrap: wrap; }.hub-stats-bar .hs-item { flex: 1; min-width: 68px; }
}.do-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin: 12px 0 18px; flex-wrap: wrap;
}.do-toolbar-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }.do-toolbar-label { font-size: 15px; color: var(--text-3); }.do-range-bar { display: flex; gap: 6px; padding: 4px; background: rgba(255,255,255,.04); border: 1px solid var(--line); border-radius: 999px; }.do-range {
  padding: 6px 14px; border-radius: 999px; border: 0; background: transparent;
  color: var(--text-2); font-size: 15px; cursor: pointer; transition: all .18s ease;
  font-family: var(--font-cute);
}.do-range:hover { color: var(--text); background: rgba(255,255,255,.06); }.do-range.active {
  color: #fff;
  background: var(--grad-accent);
  box-shadow: 0 4px 14px rgba(255,126,179,.35);
}.do-export {
  padding: 8px 18px; border-radius: 999px; border: 1px solid var(--accent);
  background: rgba(255,126,179,.12); color: var(--accent); font-weight: 600;
  cursor: pointer; font-family: var(--font-cute); font-size: 15px;
  transition: all .18s ease;
}.do-export:hover { background: var(--accent); color: #fff; box-shadow: 0 6px 18px rgba(255,126,179,.4); }.do-range-note { font-size: 16px; color: var(--text-2); margin-bottom: 14px; }.do-range-note .do-range-date { color: var(--text-3); margin-left: 6px; font-size: 15px; }.do-kpi-grid-visitor { grid-template-columns: repeat(3, 1fr); }@media (max-width: 880px) {.do-kpi-grid-visitor { grid-template-columns: repeat(2, 1fr); } }.do-kpi-grid-dash { grid-template-columns: repeat(5, 1fr); }@media (max-width: 1280px) {.do-kpi-grid-dash { grid-template-columns: repeat(4, 1fr); } }@media (max-width: 980px) {.do-kpi-grid-dash { grid-template-columns: repeat(3, 1fr); } }@media (max-width: 680px) {.do-kpi-grid-dash { grid-template-columns: repeat(2, 1fr); } }.do-kpi-grid {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  margin-bottom: 18px;
}.do-kpi {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 12px; border-radius: 14px;
  background: linear-gradient(150deg, rgba(40,34,62,.92) 0%, rgba(26,23,38,.92) 100%);
  border: 1px solid rgba(124,58,237,.22);
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  animation: doKpiIn .4s ease both;
  min-width: 0;
}@keyframes doKpiIn {from { opacity: 0; transform: translateY(8px); }to { opacity: 1; transform: translateY(0); }
}.do-kpi:hover { transform: translateY(-2px); border-color: rgba(255,126,179,.45); box-shadow: 0 10px 28px rgba(124,58,237,.28); }.do-kpi-icon {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px;
  display: grid; place-items: center; font-size: 22px; color: #fff;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.18), 0 4px 10px rgba(0,0,0,.3);
}.do-kpi-info { flex: 1; min-width: 0; line-height: 1.2; }.do-kpi-value {
  font-family: var(--font-round); font-size: 24px; font-weight: 700;
  color: var(--text); line-height: 1.1; letter-spacing: -0.5px;
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap;
}.do-kpi-value-money { font-size: 19px; color: var(--accent); }.do-kpi-label { font-size: 15px; color: var(--text-2); margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}.do-kpi-ratio {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 15px; font-weight: 600; padding: 2px 6px; border-radius: 6px;
  margin-top: 4px; white-space: nowrap;
}.do-kpi-ratio em { font-style: normal; font-weight: 500; opacity: .65; font-size: 15px; }.do-kpi-ratio.do-up { color: #5eead4; background: rgba(94,234,212,.12); }.do-kpi-ratio.do-down { color: #ff8e9e; background: rgba(255,142,158,.14); }.do-kpi-ratio.do-flat { color: var(--text-3); background: rgba(125,114,149,.16); }.do-kpi-grid.do-kpi-grid-dash { grid-template-columns: repeat(5, minmax(0, 1fr)); }@media (max-width: 1280px) {.do-kpi-grid { grid-template-columns: repeat(4, 1fr); } }@media (max-width: 880px) {.do-kpi-grid { grid-template-columns: repeat(3, 1fr); } }@media (max-width: 680px) {.do-kpi-grid.do-kpi-grid-dash { grid-template-columns: repeat(2, minmax(0, 1fr)); } }@media (max-width: 600px) {.do-kpi-grid { grid-template-columns: repeat(2, 1fr); } }.do-info {
  margin: 6px 0 22px; padding: 10px 14px;
  background: rgba(124,58,237,.08); border-left: 3px solid var(--accent-2);
  border-radius: 6px; font-size: 15px; color: var(--text-3); line-height: 1.6;
}.do-grid-3 {
  display: grid; grid-template-columns: minmax(0,4fr) minmax(0,3fr) minmax(0,2fr); gap: 16px;
  margin-bottom: 16px;
}@media (max-width: 980px) {.do-grid-3 { grid-template-columns: 1fr; } }.do-block {
  background: linear-gradient(150deg, rgba(40,34,62,.92), rgba(26,23,38,.92));
  border: 1px solid rgba(124,58,237,.18);
  border-radius: 14px; padding: 18px;
}.do-block-title { font-family: var(--font-cute); font-size: 17px; color: var(--text); margin-bottom: 4px; }.do-block-sub { font-size: 15px; color: var(--text-3); margin-bottom: 14px; }.do-cust-bar {
  display: flex;
  width: 100%;
  min-height: 56px;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255,255,255,.04);
  margin-bottom: 10px;
}.do-cust-seg {
  display: flex; flex-direction: column; justify-content: center; align-items: center;
  color: #fff; padding: 4px 0; min-width: 0;
  overflow: hidden;
}.do-cust-seg.empty { display: none; }.do-cust-seg b { font-family: var(--font-round); font-size: 20px; line-height: 1; }.do-cust-seg span { font-size: 15px; opacity: .82; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }.do-cust-new { background: linear-gradient(135deg,#ff7eb3,#ff4d8d); }.do-cust-old { background: linear-gradient(135deg,#5b8def,#7c5cff); }.do-cust-summary { font-size: 15px; color: var(--text-3); text-align: right; }.do-cust-summary b { color: var(--text); font-weight: 700; font-family: var(--font-round); }.do-traffic-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 6px; }.do-traffic-cell { background: rgba(255,255,255,.04); border-radius: 10px; padding: 18px 14px; text-align: center; }.do-traffic-num { font-family: var(--font-round); font-size: 26px; font-weight: 700; color: var(--accent); line-height: 1.1; word-break: break-all; }.do-traffic-cap { font-size: 15px; color: var(--text-2); margin-top: 8px; }.do-ch { display: flex; gap: 16px; align-items: center; }.do-ch-ring { width: 110px; height: 110px; flex-shrink: 0; }.do-ch-num { fill: var(--text); font-family: var(--font-round); font-size: 24px; font-weight: 700; }.do-ch-cap { fill: var(--text-3); font-size: 15px; }.do-ch-legend { flex: 1; display: flex; flex-direction: column; gap: 10px; min-width: 0; }.do-ch-row { display: flex; align-items: center; gap: 8px; font-size: 15px; }.do-ch-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; box-shadow: 0 0 0 2px rgba(255,255,255,.04); }.do-ch-label { color: var(--text-2); flex: 1; }.do-ch-count { color: var(--text); font-family: var(--font-round); font-weight: 600; }.do-inv { display: flex; flex-direction: column; gap: 10px; }.do-inv-row {
  display: flex; justify-content: space-between; padding: 8px 12px;
  background: rgba(255,255,255,.04); border-radius: 8px; font-size: 15px;
}.do-inv-row span { color: var(--text-2); }.do-inv-row b { color: var(--text); font-family: var(--font-round); }.do-inv-row.do-inv-empty b { color: var(--text-3); }.do-grid-2 {
  display: grid; grid-template-columns: 2fr 1fr; gap: 16px;
}@media (max-width: 1100px) {.do-grid-2 { grid-template-columns: 1fr; } }.do-panel {
  background: linear-gradient(150deg, rgba(40,34,62,.92), rgba(26,23,38,.92));
  border: 1px solid rgba(124,58,237,.18);
  border-radius: 14px; padding: 18px;
}.do-panel-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }.do-panel-title { font-family: var(--font-cute); font-size: 17px; color: var(--text); }.do-panel-tags { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }.do-tag {
  font-size: 15px; padding: 4px 10px; border-radius: 8px;
  background: rgba(255,255,255,.04); color: var(--text-3); cursor: pointer;
  border: 1px solid transparent; font-family: var(--font-cute);
}.do-tag.active { background: rgba(255,126,179,.16); color: var(--accent); border-color: rgba(255,126,179,.4); }.do-tag:hover { color: var(--text-2); }.do-trend {
  display: flex; gap: 6px; height: 200px; align-items: flex-end;
  padding: 16px 4px 8px; background: rgba(255,255,255,.02); border-radius: 10px;
  position: relative;
}.do-trend-col { flex: 0 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; min-width: 0; height: 100%; }.do-trend-bar {
  width: 100%; max-width: 18px;
  background: linear-gradient(180deg, #ff7eb3 0%, #7c3aed 100%);
  border-radius: 4px 4px 0 0; transition: height .4s ease;
  box-shadow: 0 -2px 8px rgba(255,126,179,.25);
  flex: 0 0 auto;
}.do-trend-bar.zero {
  background: rgba(255,255,255,.08);
  box-shadow: none;
}.do-trend-bar.today {
  background: linear-gradient(180deg, #ffc857 0%, #ff7a3d 100%);
  box-shadow: 0 0 14px rgba(255,200,87,.6);
}.do-trend-date { font-size: 15px; color: var(--text-3); white-space: nowrap; }.do-empty { padding: 40px; text-align: center; color: var(--text-3); font-size: 15px; }.do-funnel { display: flex; flex-direction: column; gap: 10px; }.do-fn-row { display: flex; flex-direction: column; gap: 4px; }.do-fn-label { font-size: 15px; color: var(--text-2); }.do-fn-bar-wrap { width: 100%; }.do-fn-bar {
  height: 36px; border-radius: 8px; display: flex; align-items: center; padding: 0 14px;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.2);
  transition: width .5s ease;
}.do-fn-count { font-family: var(--font-round); font-weight: 700; color: #fff; font-size: 16px; }.do-fn-arrow { font-size: 15px; color: var(--text-3); padding-left: 12px; padding-bottom: 2px; }.so-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  margin: 12px 0 18px; flex-wrap: wrap;
}.so-toolbar-left { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }.so-toolbar-label { font-size: 15px; color: var(--text-3); }.so-range-bar { display: flex; gap: 6px; padding: 4px; background: rgba(255,255,255,.04); border: 1px solid var(--line); border-radius: 999px; flex-wrap: wrap; }.so-range {
  padding: 6px 14px; border-radius: 999px; border: 0; background: transparent;
  color: var(--text-2); font-size: 15px; cursor: pointer; transition: all .18s ease;
  font-family: var(--font-cute);
}.so-range:hover { color: var(--text); background: rgba(255,255,255,.06); }.so-range.active {
  color: #fff;
  background: var(--grad-accent);
  box-shadow: 0 4px 14px rgba(255,126,179,.35);
}.so-export {
  padding: 8px 18px; border-radius: 999px; border: 1px solid var(--accent);
  background: rgba(255,126,179,.12); color: var(--accent); font-weight: 600;
  cursor: pointer; font-family: var(--font-cute); font-size: 15px;
  transition: all .18s ease;
}.so-export:hover { background: var(--accent); color: #fff; box-shadow: 0 6px 18px rgba(255,126,179,.4); }.so-range-note { font-size: 16px; color: var(--text-2); margin-bottom: 14px; }.so-range-note .so-range-date { color: var(--text-3); margin-left: 6px; font-size: 15px; }.so-kpi-grid {
  display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px;
  margin-bottom: 18px;
}.so-kpi {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 12px; border-radius: 14px;
  background: linear-gradient(150deg, rgba(40,34,62,.92) 0%, rgba(26,23,38,.92) 100%);
  border: 1px solid rgba(124,58,237,.22);
  box-shadow: 0 6px 18px rgba(0,0,0,.28);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  animation: soKpiIn .4s ease both;
  min-width: 0;
}@keyframes soKpiIn {from { opacity: 0; transform: translateY(8px); }to { opacity: 1; transform: translateY(0); }
}.so-kpi:hover { transform: translateY(-2px); border-color: rgba(255,126,179,.45); box-shadow: 0 10px 28px rgba(124,58,237,.28); }.so-kpi-icon {
  flex: 0 0 auto; width: 40px; height: 40px; border-radius: 10px;
  display: grid; place-items: center; font-size: 22px; color: #fff;
  box-shadow: inset 0 -2px 0 rgba(0,0,0,.18), 0 4px 10px rgba(0,0,0,.3);
}.so-kpi-info { flex: 1; min-width: 0; line-height: 1.2; }.so-kpi-value {
  font-family: var(--font-round); font-size: 24px; font-weight: 700;
  color: var(--text); line-height: 1.1; letter-spacing: -0.5px;
  display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap;
}.so-kpi-value-money { font-size: 19px; color: var(--accent); }.so-kpi-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }.so-kpi-label { font-size: 15px; color: var(--text-2); margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  flex: 1 1 auto; min-width: 0;
}.so-kpi-ratio {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 15px; font-weight: 600; padding: 2px 6px; border-radius: 6px;
  margin-top: 4px; white-space: nowrap;
}.so-kpi-ratio em { font-style: normal; font-weight: 500; opacity: .65; font-size: 15px; }.so-kpi-ratio.so-up { color: #5eead4; background: rgba(94,234,212,.12); }.so-kpi-ratio.so-down { color: #ff8e9e; background: rgba(255,142,158,.14); }.so-kpi-ratio.so-flat { color: var(--text-3); background: rgba(125,114,149,.16); }@media (max-width: 1280px) {.so-kpi-grid { grid-template-columns: repeat(4, 1fr); } }@media (max-width: 880px) {.so-kpi-grid { grid-template-columns: repeat(3, 1fr); } }@media (max-width: 600px) {.so-kpi-grid { grid-template-columns: repeat(2, 1fr); } }.so-info {
  margin: 6px 0 22px; padding: 10px 14px;
  background: rgba(124,58,237,.08); border-left: 3px solid var(--accent-2);
  border-radius: 6px; font-size: 15px; color: var(--text-3); line-height: 1.6;
}.so-grid-2 {
  display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
}@media (max-width: 1100px) {.so-grid-2 { grid-template-columns: 1fr; } }.so-panel {
  background: linear-gradient(150deg, rgba(40,34,62,.92), rgba(26,23,38,.92));
  border: 1px solid rgba(124,58,237,.18);
  border-radius: 14px; padding: 18px;
}.so-panel-head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }.so-panel-title { font-family: var(--font-cute); font-size: 17px; color: var(--text); }.so-panel-right { margin-left: auto; font-size: 15px; color: var(--text-3); }.so-panel-tags { display: flex; gap: 6px; margin-left: auto; flex-wrap: wrap; }.so-tag {
  font-size: 15px; padding: 4px 10px; border-radius: 8px;
  background: rgba(255,255,255,.04); color: var(--text-3); cursor: pointer;
  border: 1px solid transparent; font-family: var(--font-cute);
}.so-tag.active { background: rgba(255,126,179,.16); color: var(--accent); border-color: rgba(255,126,179,.4); }.so-tag:hover { color: var(--text-2); }.so-rows { display: flex; flex-direction: column; gap: 10px; }.so-row {
  padding: 10px 12px; border-radius: 10px;
  background: rgba(255,255,255,.03); border: 1px solid rgba(124,58,237,.12);
  transition: border-color .18s ease;
}.so-row:hover { border-color: rgba(255,126,179,.45); }.so-row-head { display: flex; align-items: center; justify-content: space-between; }.so-row-name { font-size: 15px; color: var(--text); font-family: var(--font-cute); }.so-row-name em { font-style: normal; font-size: 15px; color: var(--text-3); margin-left: 4px; font-family: var(--font-round); }.so-row-amount { font-family: var(--font-round); font-weight: 700; font-size: 16px; color: var(--accent); }.so-row-meta { font-size: 15px; color: var(--text-3); margin: 4px 0 6px; }.so-row-bar { height: 6px; border-radius: 999px; background: rgba(255,255,255,.06); overflow: hidden; }.so-row-fill { height: 100%; border-radius: 999px; transition: width .5s ease; min-width: 4%; }.so-trend {
  display: flex; gap: 6px; height: 200px; align-items: flex-end;
  padding: 16px 4px 8px; background: rgba(255,255,255,.02); border-radius: 10px;
  position: relative;
}.so-trend-col { flex: 0 1 auto; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 6px; min-width: 0; height: 100%; }.so-trend-bar {
  width: 100%; max-width: 18px;
  background: linear-gradient(180deg, #ff7eb3 0%, #7c3aed 100%);
  border-radius: 4px 4px 0 0; transition: height .4s ease;
  box-shadow: 0 -2px 8px rgba(255,126,179,.25);
  flex: 0 0 auto;
}.so-trend-bar.zero { background: rgba(255,255,255,.08); box-shadow: none; }.so-trend-bar.today { background: linear-gradient(180deg, #ffc857 0%, #ff7a3d 100%); box-shadow: 0 0 14px rgba(255,200,87,.6); }.so-trend-date { font-size: 15px; color: var(--text-3); white-space: nowrap; }.so-empty {
  padding: 22px 18px; text-align: center; color: var(--text-3); font-size: 15px;
  background: rgba(255,255,255,.02); border-radius: 10px; line-height: 1.7;
}.so-empty b { color: var(--accent); }.cpn-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 16px; margin-bottom: 6px; }.cpn-form-grid .cpn-f { display: flex; flex-direction: column; margin: 0; }.cpn-form-grid .cpn-f > span { font-size: 15px; color: var(--text-2); margin-bottom: 5px; }.cpn-form-grid .cpn-f input,
.cpn-form-grid .cpn-f select { margin-bottom: 0; }@media (max-width: 900px) {.cpn-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }.pay-bank-box { margin-top: 16px; padding: 14px 16px; border: 1px dashed var(--line); border-radius: 12px; background: rgba(255,255,255,.02); }.pay-bank-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }.pay-bank-title { font-size: 16px; font-weight: 600; color: var(--text); }.pay-bank-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 14px; }.pay-bank-grid label { display: flex; flex-direction: column; margin: 0; }.pay-bank-grid label > span { font-size: 15px; color: var(--text-2); margin-bottom: 5px; }.pay-bank-grid input { margin-bottom: 0; }.pay-bank-grid .span-2 { grid-column: span 2; }@media (max-width: 900px) {.pay-bank-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }.admin-log-row .log-action {
  font-size: 15px; color: var(--text-3); font-family: var(--font-mono, monospace);
  padding: 1px 7px; border-radius: 999px; background: rgba(255,255,255,.05); white-space: nowrap;
}.up-layout { display: grid; grid-template-columns: 280px 1fr; gap: 18px; align-items: start; }.up-proj-col { background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 12px; padding: 12px; max-height: calc(100vh - 240px); min-height: 540px; overflow-y: auto; }.up-proj-head { font-size: 15px; font-weight: 600; margin-bottom: 8px; color: var(--text); }.up-proj-item { padding: 8px 10px; border-radius: 9px; cursor: pointer; margin-bottom: 5px; border: 1px solid transparent; }.up-proj-item:hover { background: rgba(255,255,255,.05); }.up-proj-item.active { background: rgba(161,121,255,.16); border-color: rgba(161,121,255,.5); }.up-proj-name { font-size: 15px; color: var(--text); display: flex; align-items: center; gap: 6px; }.up-proj-meta { font-size: 15px; color: var(--text-3); margin-top: 3px; }.up-cust-badge { font-size: 15px; padding: 1px 6px; border-radius: 999px; background: linear-gradient(135deg,#ff7eb3,#ff5c8a); color: #fff; white-space: nowrap; }.up-readonly-tip { font-size: 15px; color: var(--warn, #ffb020); margin: 6px 0 12px; }@media (max-width: 1100px) {.up-layout { grid-template-columns: 1fr; } }.cap-bar { height: 12px; border-radius: 999px; background: rgba(255,255,255,.08); overflow: hidden; margin: 14px 0 6px; }.cap-bar-fill { height: 100%; border-radius: 999px; background: linear-gradient(90deg,#a179ff,#ff7eb3); transition: width .4s ease; }.cap-bar-fill.warn { background: linear-gradient(90deg,#ffb020,#ff7043); }.cap-bar-fill.danger { background: linear-gradient(90deg,#ff5c5c,#ff2d55); }.cap-bar-tip { font-size: 15px; color: var(--text-3); margin-bottom: 16px; }.file-find-bar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 8px 0 14px; }.file-find-bar .search-input { min-width: 240px; }.file-find-table { width: 100%; border-collapse: collapse; font-size: 16px; }.file-find-table th { text-align: left; font-size: 16px; color: var(--text-3); font-weight: 500; padding: 8px 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }.file-find-table td { padding: 9px 10px; border-bottom: 1px solid rgba(255,255,255,.05); color: var(--text-2); vertical-align: middle; }.file-find-table tr:hover td { background: rgba(255,255,255,.03); }.ff-name { color: var(--text); cursor: pointer; }.ff-name:hover { color: var(--accent); text-decoration: underline; }.ff-proj { color: #a179ff; cursor: pointer; }.ff-proj:hover { text-decoration: underline; }.ff-size { white-space: nowrap; font-variant-numeric: tabular-nums; }.ff-never { color: var(--text-3); font-style: italic; }.member-view-switch { display: inline-flex; gap: 6px; margin: 0 8px; align-self: center; }.mv-btn { border: 1px solid var(--line); background: rgba(255,255,255,.03); color: var(--text-2); border-radius: 999px; padding: 6px 14px; font-size: 15px; cursor: pointer; transition: .15s; }.mv-btn:hover { border-color: var(--accent); color: var(--text); }.mv-btn.on { border-color: var(--accent); background: rgba(255,126,179,.16); color: #fff; font-weight: 500; }.member-table-wrap { overflow-x: auto; border: 1px solid rgba(255,143,199,.16); border-radius: 12px; background: rgba(28,24,44,.5); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }.member-table { width: 100%; border-collapse: collapse; font-size: 15px; min-width: 0; box-sizing: border-box; }.member-table th { text-align: left; font-size: 15px; color: #fff; font-weight: 700; padding: 12px 12px; border-bottom: 1px solid var(--line); white-space: nowrap; background: rgba(0,0,0,.55); text-shadow: 0 1px 2px rgba(0,0,0,.45); position: sticky; top: 0; z-index: 2; }.member-table td { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.05); color: var(--text); vertical-align: middle; overflow: hidden; }.member-table tr:last-child td { border-bottom: none; }.member-table tr:hover td { background: rgba(255,255,255,.03); }.member-table tr.disabled td { opacity: .55; }.member-table tr.is-self td { background: rgba(161,121,255,.07); }.mt-user { display: flex; align-items: center; gap: 8px; }.mt-avatar { width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg,#a179ff,#ff7eb3); background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; font-size: 15px; color: #fff; flex: 0 0 28px; }.mt-name { white-space: nowrap; }.mt-self { font-size: 15px; padding: 1px 6px; border-radius: 999px; background: rgba(161,121,255,.25); color: #d9c8ff; margin-left: 6px; }.mt-dim { color: var(--text-3); font-size: 15px; }.mt-ops { white-space: nowrap; }.mt-ops .ghost-btn { margin: 2px 3px 2px 0; }.member-table { table-layout: fixed; }.member-table th,
.member-table td { padding-left: 10px; padding-right: 10px; min-width: 0; box-sizing: border-box; }.member-table th:nth-child(1),
.member-table td:nth-child(1) { width: 4%; }.member-table th:nth-child(2),
.member-table td:nth-child(2) { width: 14%; }.member-table th:nth-child(3),
.member-table td:nth-child(3) { width: 10%; }.member-table th:nth-child(4),
.member-table td:nth-child(4) { width: auto; }.member-table th:nth-child(5),
.member-table td:nth-child(5) { width: 9%; }.member-table th:nth-child(6),
.member-table td:nth-child(6) { width: 13%; }.member-table th:nth-child(7),
.member-table td:nth-child(7) { width: 13%; }.member-table th:nth-child(8),
.member-table td:nth-child(8) { width: 25%; }.modal.modal-perm { width: 1400px; max-width: 97vw; }.modal.modal-perm .member-left { flex: 0 0 268px; }.modal.modal-perm .perm-cols { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }.modal.modal-perm .perm-col { padding: 10px 10px 12px; }.perm-toggle { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.bill-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 12px; }.bill-cat { border: 1px solid var(--line); background: rgba(255,255,255,.03); color: var(--text-2); border-radius: 999px; padding: 7px 16px; font-size: 15px; cursor: pointer; transition: .15s; }.bill-cat:hover { border-color: var(--accent); color: var(--text); }.bill-cat.on { border-color: var(--accent); background: rgba(255,126,179,.16); color: #fff; font-weight: 500; }.bill-cat-n { font-size: 15px; opacity: .75; margin-left: 3px; }.bill-batchbar { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.03); margin-bottom: 12px; }.bill-all { display: flex; align-items: center; gap: 6px; font-size: 15px; color: var(--text-2); cursor: pointer; }.bill-all input { width: auto; margin: 0; }.bill-sum { font-size: 15px; color: var(--text-3); margin-right: auto; }.bill-list { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }.bill-row { display: grid; grid-template-columns: 34px 1fr 150px 140px; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.02); cursor: default; }.bill-row.on { border-color: var(--accent); background: rgba(255,126,179,.10); }.bill-pick input { width: auto; margin: 0; }.bill-lock { color: var(--text-3); }.bill-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }.bill-title { font-size: 16px; color: var(--text); }.bill-meta { font-size: 15px; color: var(--text-3); }.bill-state { font-size: 15px; color: var(--text-2); }.bill-state.ok { color: #34c759; }.bill-state.warn { color: #ffb020; }.bill-state.bad { color: #ff5c5c; }.bill-act { text-align: right; }@media (max-width: 900px) {.bill-row { grid-template-columns: 30px 1fr; }.bill-state, .bill-act { grid-column: 2; text-align: left; } }.trash-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 12px 0 12px; }.trash-tab { border: 1px solid var(--line); background: rgba(255,255,255,.03); color: var(--text-2); border-radius: 999px; padding: 7px 16px; font-size: 15px; cursor: pointer; transition: .15s; }.trash-tab:hover { border-color: var(--accent); color: var(--text); }.trash-tab.on { border-color: var(--accent); background: rgba(255,126,179,.16); color: #fff; font-weight: 500; }.trash-spacer { flex: 1; }.trash-head-row { display: flex; align-items: center; gap: 10px; padding: 4px 12px 8px; font-size: 15px; color: var(--text-3); }.trash-head-row .tr-name { flex: 1; }.tr-by { width: 120px; font-size: 15px; color: var(--text-3); }.tr-ops { width: 190px; text-align: right; white-space: nowrap; }.trash-row .tr-date { width: 150px; }.trash-head-row .tr-date { width: 150px; }.tr-sub { font-size: 15px; color: var(--text-3); }.member-table th {
  background: rgba(0,0,0,.30) !important;
  color: var(--text) !important;
  font-weight: 700;
  letter-spacing: .3px;
  border-bottom: 2px solid rgba(255,255,255,.10);
  position: sticky;
  top: 0;
  z-index: 2;
}.tag-badge,
.tag-badge.muted,
.um-msg-cat,
.im-msg-head .tag-badge,
.im-msg-head .tag-badge.muted {
  color: #fff !important;
}select,
.filter-select,
.modal select,
.modal .filter-select,
.cib-priority,
.cib-vis,
.script-tb-speed,
.np-form-input select,
.um-send-form select {
  background-color: var(--bg-2) !important;
  color: #fff !important;
  border-color: rgba(255,126,179,.35) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 10px center !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  appearance: none !important;
  padding-right: 28px !important;
}select option,
.filter-select option,
.modal select option {
  background: var(--bg-2);
  color: #fff;
}select option:hover,
select option:checked,
.filter-select option:checked,
.modal select option:checked {
  background: rgba(255,126,179,.25);
}#reviewStage .stage-hint { bottom: 320px !important; z-index: 25; }.comment-input-bar .tool-btn,
.comment-input-bar .ctrl-btn,
.comment-input-bar .ghost-btn.rv-toggle {
  width: 32px;
  height: 32px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  flex-shrink: 0;
}.comment-input-bar #cibSend {
  width: auto;
  min-width: 44px;
  height: 80%;
  min-height: 42px;
  padding: 0 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
}.comment-input-bar .tag-input {
  width: 80px;
  min-width: 0;
  padding: 6px 8px;
  font-size: 15px;
}.comment-input-bar .cib-priority,
.comment-input-bar .cib-vis {
  font-size: 15px;
  padding: 5px 24px 5px 8px;
  min-width: 0;
}.quick-anno-panel .qa-scroll::-webkit-scrollbar { width: 8px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.06); border-radius: 8px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-thumb { background: rgba(255,126,179,.55); border-radius: 8px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-thumb:hover { background: rgba(255,126,179,.8); }.quick-anno-panel .qa-edit-bar {
  flex: 0 0 100%;
  width: 100%;
  display: flex;
  gap: 6px;
  padding: 0 0 8px;
  margin-bottom: 6px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}.quick-anno-panel .qa-edit-bar button {
  flex: 1;
  font-size: 15px;
  padding: 6px 0;
  border-radius: 6px;
  border: 1px solid var(--line);
  background: var(--bg-3);
  color: var(--text-2);
  cursor: pointer;
}.quick-anno-panel .qa-edit-bar button:hover {
  border-color: var(--accent);
  color: var(--text);
}.quick-anno-panel .qa-add-row {
  flex: 0 0 100%;
  width: 100%;
  display: flex;
  gap: 6px;
  padding: 0 0 8px;
  margin-bottom: 6px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}.quick-anno-panel .qa-add-row input {
  flex: 1;
  min-width: 0;
  padding: 7px 10px;
  border-radius: 8px;
  border: 1px solid var(--line);
  background: var(--bg-3);
  color: var(--text);
  font-size: 15px;
}.quick-anno-panel .qa-item {
  display: block;
  text-align: left;
  font-size: 15px;
  line-height: 1.35;
  padding: 8px 22px 8px 10px;
  border-radius: 8px;
  background: rgba(255,255,255,.04);
  color: var(--text);
  border: 1px solid transparent;
  cursor: pointer;
  position: relative;
}.quick-anno-panel .qa-item:hover {
  background: rgba(255,126,179,.16);
  border-color: var(--accent);
  color: #fff;
}.quick-anno-panel .qa-item.dragging {
  opacity: .45;
  border-color: var(--accent);
}.quick-anno-panel .qa-del {
  position: absolute;
  right: 5px;
  top: 10px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: none;
  background: rgba(255,107,157,.85);
  color: #fff;
  font-size: 15px;
  cursor: pointer;
  display: none;
  align-items: center;
  justify-content: center;
}.quick-anno-panel.editing .qa-del { display: flex; }.quick-anno-panel.editing .qa-item { cursor: move; }.dialog-card.hrr-wide { width: 680px; max-width: 92vw; }.hrr-layout { display: flex; gap: 16px; align-items: stretch; }.hrr-left { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; }.hrr-right { flex: 0 0 240px; display: flex; flex-direction: column; }.hrr-right .hrr-upload-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 160px;
  padding: 12px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  background: rgba(0,0,0,.2);
}.hrr-right .hrr-previews {
  flex: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  overflow-y: auto;
  max-height: 160px;
  margin-bottom: 8px;
}.hrr-right .hrr-thumb { width: 60px; height: 60px; }.hrr-right .hrr-tip { font-size: 15px; color: var(--text-2); margin-bottom: 6px; }.hrr-right #hrr_pick,
.hrr-right [id$="_pick"] {
  align-self: flex-start;
}@media (max-width: 760px) {.hrr-layout { flex-direction: column; }.hrr-right { flex: 1 1 auto; }
}.bill-row,
.invoice-row,
.inv-pick,
.order-row {
  background: rgba(0,0,0,.22);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.05);
}.bill-row.on,
.inv-pick:has(input:checked) {
  background: rgba(255,126,179,.14);
  border-color: rgba(255,126,179,.35);
}.project-workspace .ws-lock-overlay {
  position: absolute;
  inset: 0;
  z-index: 200;
  background: rgba(10, 8, 18, 0.82);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}.ws-lock-card {
  max-width: 520px;
  padding: 36px 40px;
  background: rgba(30, 24, 48, 0.92);
  border: 1px solid rgba(255, 143, 199, 0.35);
  box-shadow: inset 0 0 28px rgba(124, 58, 237, 0.22), 0 0 34px rgba(124, 58, 237, 0.18);
  border-radius: 18px;
  text-align: center;
  color: #fff;
}.ws-lock-icon { font-size: 50px; margin-bottom: 12px; }.ws-lock-title { font-size: 24px; font-weight: 700; margin-bottom: 16px; background: linear-gradient(90deg, #ff8fc7, #a78bfa); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }.ws-lock-body { font-size: 17px; line-height: 1.7; color: var(--text-2); margin-bottom: 14px; }.ws-lock-count { font-size: 18px; margin-bottom: 10px; }.ws-lock-count b { color: #ff9f43; font-size: 22px; }.ws-lock-hint { font-size: 15px; color: var(--text-3); }.pc-status {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 7px;
  font-size: 15px;
  font-weight: 600;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.35);
  line-height: 1.4;
  vertical-align: middle;
}.pc-status.sealed { color: #ff9f43; }.pc-status.dissolved { color: #ff6b6b; }.admin-boss-entry {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}.admin-boss-entry .admin-link {
  color: #ffd700;
}.proj-info-pid {
  font-family: ui-monospace, Menlo, Consolas, monospace;
  letter-spacing: 0.5px;
  color: #c4b5fd;
}.hub-head-actions { position: fixed; top: 68px; right: 18px; z-index: 60; flex-direction: column; align-items: flex-end; gap: 8px; }.hub-float-btn {
  width: 40px; height: 40px; border-radius: 12px;
  background: linear-gradient(135deg, #ff7eb3, #a855f7); color: #fff; border: none;
  font-size: 18px; font-weight: 700; cursor: pointer;
  box-shadow: 0 4px 14px rgba(255,126,179,.35);
  transition: filter .15s, transform .15s;
}.hub-float-btn:hover { filter: brightness(1.08); transform: translateY(-2px); color: #fff; }.hub-widget { border: 1px solid rgba(255,126,179,.22); box-shadow: 0 6px 18px rgba(0,0,0,.18), 0 0 0 1px rgba(168,85,247,.06); }.hub-widget .hw-head {
  background: linear-gradient(90deg, rgba(255,126,179,.14), rgba(168,85,247,.14));
  border-bottom: 1px solid rgba(255,255,255,.06);
}.hw-title { color: #f3e9ff; font-weight: 600; }.hw-grip { color: var(--accent); }.hub-account-name { display:flex; align-items:baseline; gap:8px; min-width:0; font-size: 17px; font-weight: 700; color: #fff; }.hub-account-name-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.hub-account-id { flex:none; font-size:15px; font-weight:400; color:var(--text-3); letter-spacing:.2px; }.hub-account-plan { font-size: 15px; color: var(--text-2); margin-top: 4px; }.hub-account-plan .accent, .accent { color: var(--accent); font-weight: 700; }.hub-mini-title { font-weight: 600; color: var(--text); }.hub-mini-msg.unread .hub-mini-title { color: var(--accent); }.hub-account-top { display: flex; align-items: center; gap: 10px; }.hub-account-lines { flex: 1; min-width: 0; }.hub-account-lines .hub-account-name,
.hub-account-lines .hub-account-plan { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.hub-account-avatar {
  flex: none; width: 46px; height: 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 21px; font-weight: 800; color: #fff; cursor: pointer;
  border: 2px solid rgba(255,143,199,.55);
  box-shadow: 0 3px 10px rgba(0,0,0,.28), 0 0 0 3px rgba(124,58,237,.16);
  background: #7c3aed; transition: transform .16s ease, box-shadow .16s ease;
  user-select: none;
}.hub-account-avatar:hover { transform: scale(1.06); box-shadow: 0 5px 14px rgba(0,0,0,.34), 0 0 0 4px rgba(255,143,199,.24); }.hub-account-usage { margin-top: 8px; display: flex; flex-direction: column; gap: 6px; }.hub-usage-row { display: flex; align-items: center; gap: 8px; font-size: 15px; }.hub-usage-label { width: 32px; flex: none; color: var(--text-3); }.hub-usage-bar { flex: 1; height: 8px; background: rgba(255,255,255,.08); border-radius: 6px; overflow: hidden; max-width: 200px; }.hub-usage-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); }.hub-usage-val { width: auto; min-width: 90px; text-align: right; white-space: nowrap; color: var(--text); }.hub-msg-actions { display: flex; flex-direction: column; gap: 6px; padding: 10px; }.accent-btn { color: var(--accent); border: 1px solid var(--accent); background: transparent; }.accent-btn:hover { background: rgba(255,126,179,.12); color: var(--accent); }#hubPendingList { display: flex; flex-direction: column; gap: 8px; padding: 10px; }#hubPendingList .pending-item { padding: 7px 10px; }#hubPendingList .pending-item .pi-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }.acct-label-sm { margin: 6px 0 4px; font-size: 15px; color: var(--text-3); }.acct-input-sm { width: 220px; max-width: 100%; padding: 8px 10px; font-size: 15px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; }.acct-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; margin: 8px 0 12px; }.acct-contact-grid label { font-size: 15px; color: var(--text-3); display: block; margin-bottom: 3px; }.acct-contact-grid input { width: 100%; padding: 8px 10px; font-size: 15px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; }.usage-bar .bar { flex: 1 1 160px; max-width: 200px; }.usage-bar em { white-space: nowrap; width: auto; min-width: 96px; }.acct-scroll { max-height: 76vh; padding: 0 6px; }.im-compose { padding: 8px 12px; margin: 0 0 6px; }.im-row { margin-bottom: 4px; gap: 10px; align-items: center; }.im-row.im-row-col { flex-direction: column; align-items: stretch; gap: 2px; margin-bottom: 4px; }.im-label { padding: 0; margin: 0 0 1px; font-size: 15px; color: var(--text-2); line-height: 1.4; }.im-compose textarea, .im-compose input, .im-compose select { padding: 7px 10px; }.im-preview { margin: 0 0 4px; padding: 4px 8px; }.im-msg { padding: 10px 12px; }.im-msg-head { margin-bottom: 2px; }.im-msg-text, .im-msg-subject { line-height: 1.45; margin: 1px 0; }.im-notes { margin: 8px 0 6px; border-top: 1px dashed rgba(255,255,255,.12); padding-top: 8px; }.im-notes-empty { font-size: 15px; color: var(--text-3); }.im-note { background: rgba(168,85,247,.12); border-left: 3px solid var(--accent-2); border-radius: 6px; padding: 6px 10px; margin: 6px 0; }.im-note-author { font-weight: 700; color: #d8c8ff; font-size: 15px; margin-right: 8px; }.im-note-time { font-size: 15px; color: var(--text-3); }.im-note-text { font-size: 15px; color: var(--text); margin-top: 3px; white-space: pre-wrap; }.im-add-note { margin-top: 4px; }.up-detail-actions { display: flex; gap: 8px; flex-wrap: wrap; }
/* 上传记录：右侧明细头改为单行（标题+元信息一行内，元信息省略号；操作按钮靠右） */
.up-detail-head { display: flex; align-items: center; gap: 12px; flex-wrap: nowrap; margin-bottom: 10px; }
.up-detail-title-row { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; overflow: hidden; }
.up-detail-title { font-size: 15px; font-weight: 700; color: var(--text); white-space: nowrap; }
.up-detail-meta { font-size: 15px; color: var(--text-3); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }#upSetPid { color: var(--accent); border: 1px solid var(--accent); }#upSetPid:hover { background: rgba(255,126,179,.12); }.quick-anno-panel .qa-scroll { overflow-y: scroll; scrollbar-width: thin; scrollbar-color: var(--accent) rgba(255,255,255,.08); }.quick-anno-panel .qa-scroll::-webkit-scrollbar { width: 8px; height: 8px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.08); border-radius: 8px; }.quick-anno-panel .qa-scroll::-webkit-scrollbar-thumb { background: rgba(255,126,179,.6); border-radius: 8px; }.acct-head { display: flex; align-items: center; gap: 14px; margin-bottom: 12px; }.acct-head-top { align-items: flex-start; }.acct-avatar {
  width: 56px; height: 56px; border-radius: 50%; flex: 0 0 56px;
  background: var(--bg-3) center/cover no-repeat; border: 1px solid rgba(255,126,179,.4);
  display: flex; align-items: center; justify-content: center; font-size: 23px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.25);
}.acct-head-info { display: flex; flex-direction: column; gap: 6px; flex: 1 1 auto; min-width: 0; }.acct-head-top .acct-head-info { gap: 8px; }.acct-name { font-size: 26px; line-height: 1.25; font-weight: 700; color: #fff; }.acct-plan { font-size: 17px; line-height: 1.3; color: var(--text-2); }.acct-head-top .acct-avatar-lg { align-self: flex-start; }.acct-plan-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }.acct-head-top .acct-head-info { gap: 10px; justify-content: center; min-height: 80px; }.acct-avatar-col { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }.acct-avatar-btn { flex: 0 0 auto; padding: 5px 12px; margin: 0; }.user-expiry { font-size: 15px; font-weight: 400; color: #ffd9ea; white-space: nowrap; max-width: 420px; overflow: hidden; text-overflow: ellipsis; line-height: 1.4; text-align: left; margin-right: 6px; padding: 5px 12px; border: 1px solid rgba(255,143,199,.45); border-radius: 999px; background: rgba(255,126,179,.12); }.user-chip { align-items: center; gap: 10px; }.user-chip .avatar {
  width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 18px; font-weight: 700; color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.25);
  background: var(--bg-3) center/cover no-repeat; border: 1px solid rgba(255,126,179,.4);
  margin-left: 2px; cursor: pointer;
}#userAvatar {
  box-sizing: border-box;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  border-radius: 9999px !important;
  -webkit-clip-path: circle(50% at 50% 50%);
  clip-path: circle(50% at 50% 50%);
  -webkit-mask-image: radial-gradient(circle closest-side at 50% 50%, #000 99%, transparent 100%);
  mask-image: radial-gradient(circle closest-side at 50% 50%, #000 99%, transparent 100%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  background-size: cover !important;
  background-position: 50% 50% !important;
  background-repeat: no-repeat !important;
}.q-rename-wrap.np-wrap.plm-wrap { width: 480px; max-width: 92vw; max-height: none; }.plm-wrap .np-form-hint { line-height: 1.6; text-align: center; word-wrap: break-word; white-space: normal; }.plm-wrap .np-form-body { overflow: visible; overflow-y: visible; flex: 0 0 auto; min-height: 0; display: block; text-align: center; padding: 12px 20px; }.detail-modal.modal-card { max-width: 760px; }.detail-ear-wrap { width: 760px; max-width: 94vw; }.detail-ear-wrap .detail-grid,
.detail-modal .detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 14px; margin: 10px 0 14px; }.detail-ear-wrap .detail-item,
.detail-modal .detail-item { display: flex; flex-direction: column; gap: 3px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); border-radius: 10px; padding: 9px 12px; min-width: 0; }.detail-ear-wrap .detail-item.full,
.detail-modal .detail-item.full { grid-column: 1 / -1; }.detail-ear-wrap .di-label,
.detail-modal .di-label { font-size: 15px; color: #e9dcf5; font-weight: 600; }.detail-ear-wrap .di-value,
.detail-modal .di-value { font-size: 16px; color: var(--text-1); word-break: break-all; overflow-wrap: anywhere; line-height: 1.45; }.detail-ear-wrap .detail-item.full .di-value,
.detail-modal .detail-item.full .di-value { white-space: pre-wrap; }.detail-ear-wrap .detail-grid-body { padding: 6px 2px; }.detail-ear-wrap .detail-table-body { padding: 6px 2px; }.detail-ear-wrap .detail-table-4col {
  width: 100%; border-collapse: collapse; font-size: 15px; table-layout: fixed;
  background: rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.12); border-radius: 12px; overflow: hidden;
}.detail-ear-wrap .detail-table-4col tr { border-bottom: 1px solid rgba(255,255,255,.10); }.detail-ear-wrap .detail-table-4col tr:last-child { border-bottom: none; }.detail-ear-wrap .detail-table-4col td { padding: 10px 12px; vertical-align: top; }.detail-ear-wrap .detail-table-4col td:nth-child(1),
.detail-ear-wrap .detail-table-4col td:nth-child(3) { width: 5.5em; min-width: 60px; color: #e9dcf5; font-weight: 600; font-size: 15px; background: rgba(255,255,255,.06); white-space: nowrap; }.detail-ear-wrap .detail-table-4col td:nth-child(2),
.detail-ear-wrap .detail-table-4col td:nth-child(4) { width: 36%; color: var(--text-1); font-size: 15px; word-break: break-all; overflow-wrap: anywhere; line-height: 1.45; }.detail-modal .detail-table { width: 100%; border-collapse: collapse; margin: 8px 0 14px; font-size: 15px; table-layout: fixed; }.detail-modal .detail-table th { width: 116px; text-align: left; padding: 10px 12px; color: #e9dcf5; font-weight: 600; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); border-radius: 10px 0 0 10px; vertical-align: top; white-space: nowrap; }.detail-modal .detail-table td { padding: 10px 12px; color: var(--text-1); border: 1px solid rgba(255,255,255,.12); border-radius: 0 10px 10px 0; vertical-align: top; word-break: break-all; }.np-form-body .np-form-textarea { grid-column: 1 / -1; }.modal.acct-modal { width: 680px; max-width: 96vw; }.modal-card.acct-modal { width: 100%; max-width: 100%; }.acct-avatar-lg { width: 80px; height: 80px; flex: 0 0 80px; font-size: 33px; }.acct-contact-row { display: flex; gap: 8px; margin: 10px 0 8px; flex-wrap: wrap; align-items: stretch; }.acct-contact-btn {
  appearance: none; border: 1px solid rgba(255,126,179,.35); background: rgba(0,0,0,.28);
  color: var(--text-2); border-radius: 999px; padding: 6px 12px; font-size: 15px; cursor: pointer;
  transition: border-color .16s ease, background .16s ease, color .16s ease;
}.acct-contact-btn:hover { border-color: rgba(255,143,199,.65); background: rgba(0,0,0,.42); color: #fff; }.acct-contact-btn.active { border-color: #ff8fc7; background: rgba(255,126,179,.16); color: #ffeaf3; font-weight: 600; }.acct-contact-btn.has-val { border-color: rgba(79,124,255,.55); color: #c7d6ff; }.acct-contact-inputs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }.acct-contact-field { display: flex; flex-direction: column; gap: 3px; min-width: 0; }.acct-contact-tag { font-size: 15px; color: var(--text-3); }.acct-contact-inputs .acct-contact-input {
  width: 100%; padding: 9px 10px; font-size: 15px; color: var(--text);
  background: var(--bg-3); border: 1px solid var(--line); border-radius: 8px;
}.acct-contact-inputs .acct-contact-input:focus { outline: none; border-color: #ff8fc7; }.acct-contact-inputs .acct-contact-input.hidden { display: none; }#mediaTitle { display: inline-flex; align-items: center; max-width: 46vw; min-width: 0; overflow: hidden; }#mediaTitle .media-title-text { display: inline-block; flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: middle; }#mediaTitle .approve-badge { flex: 0 0 auto; margin-left: 8px; }.bp-pay-img { width: 100%; height: auto; display: block; border-radius: 18px; border: 1px solid rgba(255,255,255,.08); opacity: .92; }.addon-config-title-actions { display: flex; align-items: center; gap: 10px; }.addon-add-card { display: flex; flex-direction: column; gap: 6px; }.addon-add-card .plan-config-sub { margin: 0; }#adminModule .plan-config-head { justify-content: flex-start; text-align: left; }#adminModule .plan-config-head .plan-config-sub { max-width: 880px; margin: 0; text-align: left; }.addon-config-card input,
.addon-config-card textarea,
.addon-config-card select,
.addon-config-card .plan-inline-grid input[type="number"],
.addon-config-card .plan-inline-grid select {
  background: rgba(10,8,18,.72) !important;
  border: 1px solid rgba(255,143,199,.28) !important;
  color: #fff !important;
  border-radius: 9px;
  font-weight: 400;
}.addon-config-card input::placeholder,
.addon-config-card textarea::placeholder { color: rgba(255,234,243,.34); }.addon-config-card input:focus,
.addon-config-card textarea:focus,
.addon-config-card select:focus {
  outline: none;
  border-color: #ff8fc7 !important;
  box-shadow: 0 0 0 3px rgba(255,126,179,.18);
}.addon-config-card input:disabled { color: rgba(255,255,255,.55) !important; }.addon-config-card .plan-inline-grid label > span,
.addon-config-card .plan-inline-feat > span { color: var(--text-2); font-weight: 400; }.addon-config-card .plan-inline-check span { color: var(--text-2); font-weight: 400; }.addon-disc-card {
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,126,179,.16), transparent 55%),
    radial-gradient(140% 90% at 100% 100%, rgba(124,58,237,.20), transparent 60%),
    rgba(24,20,36,.82) !important;
  border: 1px solid rgba(255,143,199,.34) !important;
  border-radius: 18px !important;
  padding: 16px 16px 14px !important;
}.addon-disc-card .addon-config-title {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 14px; border-radius: 999px; margin-bottom: 10px;
  background: linear-gradient(90deg, #ff8fc7, #7c3aed);
  color: #fff; font-size: 16px; font-weight: 400;
  box-shadow: 0 4px 12px rgba(124,58,237,.32);
}.addon-disc-card > .plan-config-sub { color: #d9cdea; margin: 0 0 12px; }.addon-disc-rows { gap: 10px; }.addon-disc-row {
  border-radius: 16px !important;
  background: rgba(10,8,18,.6) !important;
  border: 1px solid rgba(255,143,199,.30) !important;
  padding: 10px 12px !important;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}.addon-disc-row:hover {
  transform: translateY(-2px);
  border-color: #ff8fc7 !important;
  box-shadow: 0 6px 16px rgba(124,58,237,.26);
}.addon-disc-row > span { color: #ffeaf3 !important; font-size: 15px; }.addon-disc-row input {
  width: 78px !important; border-radius: 999px !important;
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,143,199,.36) !important;
  color: #fff !important; font-weight: 800 !important; font-size: 17px !important;
}.addon-disc-row input:focus { border-color: #ff8fc7 !important; box-shadow: 0 0 0 3px rgba(255,126,179,.2); }.cm-edit-modal.modal { width: 520px; max-width: 94vw; }.cm-edit-wrap { width: 100%; }.cm-edit-head { font-size: 18px; font-weight: 700; margin-bottom: 12px; color: #e6dcff; }.cm-edit-toolbar { display: flex; gap: 8px; margin-bottom: 10px; }.cm-edit-toolbar .ce-btn { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 8px; padding: 7px 12px; font-size: 15px; cursor: pointer; display: inline-flex; align-items: center; gap: 5px; transition: border-color .15s, background .15s; }.cm-edit-toolbar .ce-btn:hover { border-color: var(--accent); background: rgba(255,126,179,.14); }.cm-edit-body { display: flex; flex-direction: column; gap: 12px; position: relative; }.cm-edit-text-wrap { position: relative; }.cm-edit-text { width: 100%; background: var(--bg-2); border: 1px solid var(--line); border-radius: 10px; padding: 10px; color: var(--text); resize: vertical; min-height: 110px; font-family: inherit; line-height: 1.5; }.cm-edit-row { display: flex; gap: 12px; }.cm-edit-field { display: flex; flex-direction: column; gap: 4px; font-size: 15px; color: var(--text-3); flex: 1; }.cm-edit-input { background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 8px; color: var(--text); }.ce-attach-wrap { display: flex; flex-wrap: wrap; gap: 8px; }.ce-pill { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,126,179,.12); border: 1px solid rgba(255,126,179,.3); color: var(--text); border-radius: 999px; padding: 3px 10px; font-size: 15px; max-width: 100%; }.ce-pill-x { cursor: pointer; font-weight: 700; color: var(--accent); }.ce-pill-x:hover { color: #ff7eb3; }.cm-edit-modal .mention-popup { position: absolute; top: 56px; left: 0; right: 0; bottom: auto; margin: 0; z-index: 70; }.cm-edit-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }.fin-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 14px 0; }.fin-sum-card { background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }.fin-sum-card b { font-size: 22px; color: #e6dcff; }.fin-sum-card span { font-size: 15px; color: var(--text-3); }.fin-sum-card.hl { background: linear-gradient(135deg, rgba(124,58,237,.25), rgba(255,126,179,.18)); border-color: rgba(124,58,237,.5); }.fin-sum-card.hl b { color: #ffd1ec; }.fin-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 10px; }.fin-sel { background: var(--bg-2); border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; color: var(--text); min-width: 130px; }.fin-sel:focus { outline: none; border-color: #7c3aed; }.fin-tip { font-size: 15px; color: var(--text-3); margin-bottom: 10px; }@media (max-width: 720px) {.fin-summary { grid-template-columns: repeat(2, 1fr); } }.media-table, .member-table, .boss-table, .file-find-table, .pm-table, .admin-table {
  table-layout: fixed; width: 100%; max-width: 100%;
}.media-table th, .media-table td,
.member-table th, .member-table td,
.boss-table th, .boss-table td,
.file-find-table th, .file-find-table td,
.pm-table th, .pm-table td,
.admin-table th, .admin-table td {
  text-align: center;
}.media-table th:nth-child(2), .media-table td:nth-child(2),
.member-table th:nth-child(2), .member-table td:nth-child(2),
.boss-table th:nth-child(1), .boss-table td:nth-child(1),
.file-find-table th:nth-child(1), .file-find-table td:nth-child(1),
.pm-table th:nth-child(1), .pm-table td:nth-child(1),
.admin-table th:nth-child(1), .admin-table td:nth-child(1) {
  text-align: left;
}.media-table th:last-child, .media-table td:last-child,
.member-table th:last-child, .member-table td:last-child,
.boss-table th:last-child, .boss-table td:last-child,
.file-find-table th:last-child, .file-find-table td:last-child,
.pm-table th:last-child, .pm-table td:last-child,
.admin-table th:last-child, .admin-table td:last-child {
  text-align: center;
}.admin-table .row-actions,
.member-table .row-actions,
.boss-table .row-actions { justify-content: center; }.media-table th:last-child, .media-table td:last-child { width: 60px; } /* #536 操作列与前后表格统一(60px)：可由最后一根分割线调整（勿加!important，否则拖拽时列宽压不动） */.member-table-wrap, .file-find-table-wrap { overflow-x: hidden; }:root { --right-art-gap: 140px; }.admin-content { padding-right: calc(var(--right-art-gap) + 22px); }@media (max-width: 1366px) {.admin-content { padding-right: calc(110px + 22px); } }@media (max-width: 1024px) {.admin-content { padding-right: 22px; } }


/* #R17 编辑资料：显示名称半宽 + 右侧所属团队 */
.acct-name-team { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }
.acct-name-col, .acct-team-col { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
/* 显示名称输入框 与 所属团队框 统一为同一套盒子样式 */
.acct-name-col .acct-input-sm,
.acct-team-col .acct-team-name {
  width: 100%; flex: none; min-height: 42px; box-sizing: border-box;
  padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px;
  background: var(--bg-3); color: var(--text); font-size: 16px; line-height: 1.25;
}

/* 基础运营 KPI：主数字下方的指标名与增减数据统一缩小一级。 */
#bossView .do-kpi-label { font-size:14px!important; }
#bossView .do-kpi-ratio { font-size:13px!important; padding:2px 5px!important; }
.acct-team-name { display: flex; align-items: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* 头像下方：用户ID（点击复制）+ 会员级别 */
.acct-userid { cursor: pointer; user-select: none; font-size: 15px; line-height: 1.3; color: var(--text-2); padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; background: rgba(255,255,255,.05); transition: .12s; }
.acct-userid:hover { border-color: var(--accent); color: var(--accent); background: rgba(255,126,179,.12); }
.acct-userid:active { transform: scale(.97); }

/* #R17 弹窗内文字统一 +2（覆盖全局 +1 后的剩余部分） */
.modal .acct-label-sm,
.dialog-card .acct-label-sm { font-size: 15px; }
.modal .acct-input-sm,
.dialog-card .acct-input-sm,
.modal .acct-team-name,
.dialog-card .acct-team-name,
.modal .acct-userid,
.dialog-card .acct-userid { font-size: 16px; }
.modal .acct-section h4,
.dialog-card h4 { font-size: 17px; }
.modal .usage-bar,
.dialog-card .usage-bar { font-size: 17px; }
.modal .primary-btn,
.modal .ghost-btn,
.dialog-card .primary-btn,
.dialog-card .ghost-btn { font-size: 18px; }

/* ===================== R17 UI 精修（6 项） ===================== */
/* #1 首页「小组动态」行间距稍微扩大 */
.activity-item { padding: 8px 0; gap: 12px; }
.activity-item + .activity-item { border-top: 1px solid rgba(255,255,255,.06); }

/* #532 所有小耳朵弹窗：背景向四周放大 10%（左/右 +10% 由 width 实现，上/下 +10% 由竖向 padding 实现；内容字号不变） */
.q-rename-wrap { width: 484px !important; padding: 26px 24px 22px !important; }            /* 基础440->484(+10%)；上下padding撑高(+10%) */
.q-rename-wrap.support-wrap { width: 528px !important; padding: 26px 24px 22px !important; } /* 480->528(+10%) */
.q-rename-wrap.np-wrap { width: 752px !important; padding: 26px 28px 22px !important; }     /* 背景外壳相对836缩短10%->752；高度(上下padding)不变 */
.risk-apply-table { table-layout: fixed; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
.risk-apply-table th, .risk-apply-table td { min-width: 0 !important; box-sizing: border-box; padding-left: 6px; padding-right: 6px; }
.risk-apply-table th:nth-child(1) { width: 11%; }
.risk-apply-table th:nth-child(2) { width: 17%; }
.risk-apply-table th:nth-child(3) { width: 13%; }
.risk-apply-table th:nth-child(4) { width: 25%; }
.risk-apply-table th:nth-child(5) { width: 14%; }
.risk-apply-table th:nth-child(6) { width: 9%; }
.risk-apply-table th:nth-child(7) { width: 11%; }
.risk-apply-table td { overflow: hidden; text-overflow: ellipsis; }
.risk-apply-table .risk-project-id { font-family: monospace; font-size: 15px; color: var(--text-2); white-space: nowrap; }
.risk-apply-table .risk-request-reason { white-space: normal; overflow-wrap: anywhere; word-break: break-word; text-overflow: clip; line-height: 1.45; }
.risk-apply-table .row-actions { white-space: normal; gap: 4px; }
.risk-apply-table .row-actions .action-btn { padding: 4px 6px; }
.q-rename-wrap.np-wrap.fm-move-wrap { width: 380px !important; }
/* #R20 修复 fm-move 弹窗：子元素被 np-wrap 规则撑到 663px，超出 380px 背景导致标题/表单/按钮悬浮在外 */
.q-rename-wrap.np-wrap.fm-move-wrap { width: 470px !important; }
.q-rename-wrap.np-wrap.fm-move-wrap > .q-rename-header,
.q-rename-wrap.np-wrap.fm-move-wrap > .np-form-body,
.q-rename-wrap.np-wrap.fm-move-wrap > .q-rename-actions { width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; box-sizing: border-box; }
/* 内部内容宽度固定 663px（=原可用780*85%，保持不变）：背景缩窄不牵连内容 */
.q-rename-wrap.np-wrap > .q-rename-header,
.q-rename-wrap.np-wrap > .np-form-body,
.q-rename-wrap.np-wrap > .q-rename-actions { width: 663px; margin-left: auto; margin-right: auto; }
.q-rename-wrap.np-wrap.new-project-wrap { width: 860px !important; max-width: 94vw; }
.q-rename-wrap.np-wrap.new-project-wrap > .q-rename-header,
.q-rename-wrap.np-wrap.new-project-wrap > .np-form-body,
.q-rename-wrap.np-wrap.new-project-wrap > .q-rename-actions { width: 100%; box-sizing: border-box; }
.modal.av-modal { width: 616px !important; }                                            /* 560->616(+10%) */
.modal.av-modal .modal-card { padding: 26px 28px !important; }                          /* 上下 24->26(+10%) */
.rep-edit-node-wrap { width: 836px !important; padding: 26px 28px !important; }         /* 760->836(+10%)；上下 24->26(+10%) */
.detail-ear-wrap { width: 836px !important; padding: 26px 28px !important; }            /* 760->836(+10%)；上下 24->26(+10%) */
.push-anno-wrap { width: 572px !important; padding: 26px 28px !important; }             /* 520->572(+10%)；上下 24->26(+10%) */

/* #4 小组内「时间节点」「小组详情」字号缩小 1（容器 18 -> 16） */
#projectNodesBody, #projectDetailBody { font-size: 16px; line-height: 1.55; }
#projectNodesBody h2, #projectDetailBody h2,
#projectNodesBody h3, #projectDetailBody h3 { font-size: 20px; }
#projectNodesBody h4, #projectDetailBody h4,
#projectNodesBody .ws-sub h4, #projectDetailBody .ws-sub h4 { font-size: 16px; }

/* #5 用户中心 · 站内消息（消息管理 / 发送消息）字号缩小 1 */
.um-inbox-wrap, .um-send-form { font-size: 16px; line-height: 1.55; }
.um-msg-body { font-size: 16px; line-height: 1.6; }
.um-label { font-size: 15px; }
.um-msg-subj { font-size: 17px; }
.um-cat-chip { font-size: 15px; }
.um-send-row { gap: 14px; }
/* 发送消息表单的输入框/下拉/文本域（基础 .np-form-input 为 18px）缩小 1 字号到 17px */
.um-send-form .np-form-input,
.um-send-form .np-form-select,
.um-send-form .np-form-textarea { font-size: 17px; }

/* #6 后台套餐管理：输入框放大 5% + 会员套餐价格栏放大1并移到名字右侧同行 + 输入框大小统一 */
.plan-config-field input { padding: 9px 12px; font-size: 17px; }
.plan-inline-grid input,
.plan-inline-grid select,
.plan-inline-feat textarea { padding: 9px 12px; font-size: 16px; }
.addon-disc-row input { padding: 9px 12px; font-size: 16px; }
.plan-config-title { flex-direction: row; align-items: center; gap: 12px; }
.plan-config-name { font-size: 18px; padding: 9px 12px; flex: 1 1 auto; min-width: 0; }
.plan-config-type { font-size: 16px; padding: 9px 12px; width: auto; flex: 0 0 auto; color: var(--text); }

/* ===================== R17c2 · 一、2/3/4 相关统一样式 ===================== */

/* #534 用户中心 / 后台：实色底色框统一带 85% 透明度（透明化面板/卡片背景变量，仅作用于这两个视图，不动全局） */
#adminView, #bossView {
  --bg-2: rgba(29, 26, 43, 0.85);
  --bg-3: rgba(38, 34, 58, 0.85);
  --panel: rgba(26, 23, 38, 0.85);
}

/* #539 用户中心 / 后台：全站表格统一为【小组>文件>列表】美术样式（覆盖粉色方框，保留各表既有列宽与对齐）
   #表格修复：table-layout 由 fixed 改为 auto —— 列宽按内容自然撑开，长文本不再被裁切（之前 fixed+overflow:hidden
   配 JS 锁列宽会把内容列压到 40px 导致文字截断）。媒体文件列表(.media-table)仍由 JS 显式百分比锁宽、保持拖拽。 */
#adminView table, #bossView table {
  table-layout: auto; width: 100%; max-width: 100%;
  border-collapse: separate; border-spacing: 0;
  background: transparent;
  border: 1px solid var(--line);
  border-radius: 12px;
  font-size: 15px;
}
/* 修复：去掉 <table> 上的 overflow:hidden —— 它在 border-collapse:separate + border-radius
   组合下会触发 Chrome 的一个已知 paint bug：单元格内的文字不绘制、需要 hover 行才能
   触发重绘才显形（即用户反馈的「要鼠标悬浮才显示」）。改为把圆角交给首/末 th 与首/末 td。 */
#adminView table thead th:first-child, #bossView table thead th:first-child { border-top-left-radius: 12px; }
#adminView table thead th:last-child, #bossView table thead th:last-child { border-top-right-radius: 12px; }
#adminView table tbody tr:last-child td:first-child, #bossView table tbody tr:last-child td:first-child { border-bottom-left-radius: 12px; }
#adminView table tbody tr:last-child td:last-child, #bossView table tbody tr:last-child td:last-child { border-bottom-right-radius: 12px; }
/* 点击展开：长文本被截断的单元格 .cell-clip —— 点击后展开显示全部内容（再点收起） */
.admin-table .cell-clip { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; display: inline-block; vertical-align: middle; max-width: 100%; }
.admin-table .cell-clip:hover { color: var(--text-1); }
.admin-table .cell-clip.open { white-space: normal; overflow: visible; word-break: break-all; cursor: pointer; }
/* 弹窗内的明细表仍用 fixed（明细布局所依赖），不要被上面的 auto 影响 */
#adminView .modal table, #bossView .modal table { table-layout: fixed; }
#adminView table thead th, #bossView table thead th {
  background: rgba(255, 255, 255, .04);
  color: var(--text-2); font-weight: 600;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
  white-space: nowrap; position: relative;
}
#adminView table tbody td, #bossView table tbody td {
  padding: 11px 14px; border-bottom: 1px solid rgba(255, 255, 255, .07);
  color: var(--text); vertical-align: middle;
}
#adminView table tbody tr:last-child td, #bossView table tbody tr:last-child td { border-bottom: none; }
#adminView table tbody tr:hover td, #bossView table tbody tr:hover td { background: rgba(124, 58, 237, .10); }
#adminView table th:not(:last-child)::after, #bossView table th:not(:last-child)::after {
  content: ''; position: absolute; right: 0; top: 12%; bottom: 12%; width: 1px;
  background: linear-gradient(to bottom, transparent 0%, rgba(255, 255, 255, 0.16) 45%, rgba(255, 255, 255, 0.16) 55%, transparent 100%);
  pointer-events: none;
}
/* 最后一列默认居中；具体宽度由 JS 按内容自动计算（操作列按按钮宽度），不再统一 60px */
#adminView table th:last-child, #bossView table th:last-child,
#adminView table td:last-child, #bossView table td:last-child { text-align: center; }
/* #防切边：用户管理表操作列（最后一列）在最窄情况下也要保留按钮空间，不被压缩裁切 */
#bossView table#uTable td.row-actions, #bossView table#uTable th.row-actions { min-width: 96px; width: 96px; white-space: nowrap; }
/* 超级管理员修改用户 ID 小弹窗（小耳朵浮层背景） */
.uv-edit-id-modal { max-width: 380px; }
.uv-edit-id-wrap { padding: 4px 2px; }
.uv-edit-id-title { font-family: var(--font-cute); font-size: 18px; color: var(--text); margin: 0 0 6px; }
.uv-edit-id-sub { font-size: 15px; color: var(--text-3); margin: 0 0 14px; }
.uv-edit-id-sub b { color: var(--text); font-family: var(--font-round); }
.uv-edit-id-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.uv-edit-id-tip { font-size: 15px; color: var(--text-3); margin-top: 6px; line-height: 1.5; }
.uv-edit-id { margin-left: 8px; font-size: 15px; padding: 2px 8px; border-radius: 8px; border: 1px solid rgba(255,126,179,.4); background: rgba(255,126,179,.12); color: var(--accent); cursor: pointer; font-family: var(--font-cute); }
.uv-edit-id:hover { background: rgba(255,126,179,.22); }

/* #540 数据报表：集数分配 / 成员看板 / 素材详细反馈（新版） */
.rep-section { margin-top: 18px; }
.rep-sub { font-size: 15px; color: var(--text-2); font-weight: 600; margin: 6px 0 10px; }
.rep-assign-list { display: flex; flex-direction: column; gap: 8px; }
.rep-assign-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ra-name { min-width: 96px; font-size: 15px; color: var(--text); }
.ra-sep { color: var(--text-3); font-size: 15px; }
.ra-input { width: 64px; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 5px 8px; font-size: 15px; }
.rep-assign-add { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.rep-assign-ro { font-size: 15px; color: var(--text-2); padding: 4px 0; }
.rep-board { display: grid; grid-template-columns: 1.4fr 0.9fr 0.8fr 0.9fr 1.3fr 1.3fr 0.8fr 0.8fr; gap: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.rep-board-head { background: rgba(255,255,255,.05); color: var(--text-2); font-weight: 600; font-size: 15px; padding: 10px 12px; border-bottom: 1px solid var(--line); }
.rep-board-cell { padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.06); font-size: 15px; color: var(--text); display: flex; align-items: center; }
.rep-board-cell:nth-child(8n+1) { font-weight: 600; }
.ra-load { font-size: 15px; padding: 2px 10px; border-radius: 999px; font-weight: 600; }
.ra-ok { background: rgba(94,234,212,.16); color: #5eead4; }
.ra-idle { background: rgba(255,180,84,.16); color: #ffb454; }
.ra-over { background: rgba(255,107,157,.18); color: #ff6b9d; }
.rep-detail-row.excluded { opacity: .5; }
.rd-exclude { display: inline-flex; align-items: center; gap: 3px; font-size: 15px; color: var(--text-3); margin-right: 6px; white-space: nowrap; }
@media (max-width: 1100px) { .rep-board { grid-template-columns: 1fr; } .rep-board-head { display: none; } .rep-board-cell { border-bottom: 1px solid rgba(255,255,255,.06); } }

/* #R17c2 全站表格列宽分割线：命中区贴着分割线内侧 10px。
   注意：表头有 overflow:hidden（防止窄列文字溢出到邻列），手柄若越出列边界会被裁掉一半、
   导致鼠标点在分割线上抓不到，因此手柄必须完整落在本列之内。 */
#adminView table thead th > .col-resizer,
#bossView table thead th > .col-resizer,
.media-table thead th > .col-resizer {
  position: absolute; right: 0; top: 0; bottom: 0; width: 10px;
  cursor: col-resize; z-index: 3; background: transparent;
}
#adminView table thead th > .col-resizer:hover,
#bossView table thead th > .col-resizer:hover,
.media-table thead th > .col-resizer:hover,
#adminView table thead th > .col-resizer.dragging,
#bossView table thead th > .col-resizer.dragging,
.media-table thead th > .col-resizer.dragging {
  background: linear-gradient(to bottom, rgba(255,143,199,0) 0%, rgba(255,143,199,.75) 22%, rgba(124,58,237,.75) 78%, rgba(124,58,237,0) 100%);
}
/* 拖窄某列后，单元格内容按列宽裁切，绝不撑破表格总宽（#R17c2 仅小组文件列表保留拖拽，作用域收窄到 .media-table） */
.media-table tbody td { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.media-table thead th { min-width: 0; overflow: hidden; }
/* #R13-req6 单项加购：直接用用户两张美术卡为背景，去掉附加的背景框 / 暗化遮罩 / 圆角框；
   两卡整体宽度与 5 张会员卡整体宽度一致（复用 .bp-grid 的 max-width 公式） */
.bp-addon-row { max-width: calc(5 * clamp(209px, 17.05vw, 275px) + 72px); }
.bp-addon-btn.has-bg {
  border-radius: 0;
  backdrop-filter: none;
  aspect-ratio: 1944 / 676;
  min-height: 0;
  padding: 20px 26px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, .32);
}
.bp-addon-btn.has-bg::after { display: none; }
.bp-addon-btn.has-bg:hover { transform: none; border-color: transparent; }
/* #R13-req7 单项加购区块：「单项加购」标题 + 两卡 整组上移 100；卡内文字再下移 100；
   下方「核心优势」标题让出 100 防重叠。用 :has() 精准命中"后面紧跟 .bp-addon-row 的 section-title" */
.bp-section-title:has(+ .bp-addon-row) { margin-top: 60px; transform: translateY(-50px); }   /* 单项加购标题上移 50 */
.bp-addon-row { margin-top: 20px; transform: translateY(-110px); }      /* 两卡上移 110（50+60），与标题错位 */
.bp-addon-row ~ * { transform: translateY(-110px); }  /* 两卡以下所有区块（核心优势/FAQ/底部）同步上移 110 */
.bp-addon-row ~ .bp-section-title:not(:last-of-type) { margin-top: 100px; }   /* 「核心优势」标题下移 100 让出空间；排除最末的「常见问题」 */
.bp-addon-btn.has-bg { padding-top: 120px; }                           /* 文字下移 100（原 20 + 100），内容贴底（justify-content:flex-end 已设） */
/* #R13-req9 单项加购：文字上移 25（padding-top 120→95）；删除卡片淡背景框（box-shadow 投影，静态与 hover 均去掉） */
.bp-addon-btn.has-bg { padding-top: 95px; box-shadow: none; }
.bp-addon-btn.has-bg:hover { box-shadow: none; }
/* #R13-req10 单项加购：文字下移 5（padding-top 95→100）；价格文字颜色对齐会员卡价格数字(#ff8fc7 + 发光阴影) */
.bp-addon-btn.has-bg { padding-top: 100px; }
.bp-addon-btn.has-bg .bp-addon-price-now {
  color: #ff8fc7;
  text-shadow: 0 0 10px rgba(255, 143, 199, 0.45), 0 1px 3px rgba(0, 0, 0, 0.4);
}

/* ==================================================================================
   R18 全站统一层：① 粉紫渐变滚动条 ② 单元格内容完整显示 ③ 表格工具条(筛选/排序/导出)
   ④ 批量选择列 ⑤ 长文本「小耳朵」弹窗正文
   ================================================================================== */

/* ① 全站滚动条统一粉紫渐变（Firefox 用 scrollbar-color 近似，WebKit 用真渐变） */
* { scrollbar-width: thin; scrollbar-color: #c77dff rgba(255, 255, 255, .06); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: rgba(255, 255, 255, .05); border-radius: 999px; }
::-webkit-scrollbar-thumb {
  border-radius: 999px; border: 2px solid transparent; background-clip: padding-box;
  background-image: linear-gradient(180deg, #ff8fc7 0%, #c77dff 52%, #7c3aed 100%);
}
::-webkit-scrollbar-thumb:horizontal { background-image: linear-gradient(90deg, #ff8fc7 0%, #c77dff 52%, #7c3aed 100%); }
::-webkit-scrollbar-thumb:hover { background-image: linear-gradient(180deg, #ffa8d5 0%, #d79bff 52%, #8b4dff 100%); }
::-webkit-scrollbar-thumb:horizontal:hover { background-image: linear-gradient(90deg, #ffa8d5 0%, #d79bff 52%, #8b4dff 100%); }
::-webkit-scrollbar-corner { background: transparent; }

/* ② .cell-clip 不再写死 px 宽度。写死宽度在列被 fixed 布局按比例拉宽后会在右侧留下大段空白
   （用户反馈的「用户名邮箱后面大段空白浪费」），改为撑满单元格；hover 由 JS 自动挂 title 显示全文。 */
.admin-table .cell-clip {
  display: block; width: auto; max-width: 100%;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: pointer;
}
.admin-table td .cell-clip, .admin-table th .cell-clip { width: auto !important; }   /* 压掉历史内联写死宽度 */
.admin-table .cell-clip.open { white-space: normal; overflow: visible; word-break: break-all; }

/* ③ 表格工具条：筛选 + 正/倒序 + 导出 Excel */
.dt-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 10px; }
.dt-bar .dt-label { font-size: 15px; color: var(--text-3); white-space: nowrap; }
.dt-bar .dt-spacer { flex: 1 1 auto; }
.dt-sort { display: inline-flex; align-items: center; gap: 6px; }
.dt-stat {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  font-size: 15px; color: var(--text-2); padding: 4px 10px; border-radius: 999px;
  background: linear-gradient(90deg, rgba(255, 143, 199, .16), rgba(124, 58, 237, .16));
  border: 1px solid rgba(255, 143, 199, .28);
}
.dt-stat b { color: #ff8fc7; font-weight: 700; }
.dt-export {
  white-space: nowrap; cursor: pointer; font-size: 15px; color: #fff; font-weight: 600;
  padding: 5px 12px; border-radius: 8px; border: 1px solid rgba(255, 143, 199, .45);
  background: linear-gradient(90deg, #ff8fc7, #7c3aed);
  transition: filter .15s, transform .15s;
}
.dt-export:hover { filter: brightness(1.12); transform: translateY(-1px); }

/* ④ 批量选择列：表头/表体的复选框列 + 批量操作条 */
.admin-table th.dt-chk-col, .admin-table td.dt-chk-col { text-align: center; padding-left: 8px; padding-right: 8px; }
.dt-chk {
  appearance: none; -webkit-appearance: none; width: 15px; height: 15px; vertical-align: middle;
  border: 2px solid rgba(255, 255, 255, .38); border-radius: 4px; background: rgba(0, 0, 0, .25);
  cursor: pointer; position: relative; transition: border-color .15s, background .15s;
}
.dt-chk:checked, .dt-chk:indeterminate { background: linear-gradient(135deg, #ff8fc7, #7c3aed); border-color: #ff8fc7; }
.dt-chk:checked::after { content: '✓'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 15px; color: #fff; font-weight: 700; }
.dt-chk:indeterminate::after { content: ''; position: absolute; left: 2px; right: 2px; top: 5px; height: 2px; background: #fff; border-radius: 1px; }
.dt-batch {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0 0 10px;
  padding: 8px 12px; border-radius: 10px;
  background: linear-gradient(90deg, rgba(255, 143, 199, .12), rgba(124, 58, 237, .12));
  border: 1px solid rgba(255, 143, 199, .3);
}
.dt-batch.hidden { display: none; }
.dt-batch-count { font-size: 15px; color: var(--text-2); white-space: nowrap; }
.dt-batch-count b { color: #ff8fc7; font-weight: 700; }

/* ⑤ 长文本「小耳朵」弹窗正文 */
.ear-text-row {
  display: flex; align-items: stretch; gap: 10px; margin: 10px 0 4px; min-width: 0;
}
.ear-text-body {
  flex: 1 1 auto; min-width: 0; margin: 0; padding: 12px 14px; max-height: 46vh; overflow: auto;
  font-size: 15px; line-height: 1.7; color: var(--text); white-space: pre-wrap; word-break: break-word;
  background: rgba(255, 255, 255, .04); border: 1px solid var(--line); border-radius: 10px;
}
.ear-text-copy {
  flex: 0 0 auto; align-self: stretch; min-width: 72px; margin: 0 !important;
  display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;
}
.ear-text-copy.copied { color: var(--ok); border-color: var(--ok); }
@media (max-width: 560px) {
  .ear-text-row { gap: 8px; }
  .ear-text-copy { min-width: 58px; padding-left: 8px; padding-right: 8px; }
}

/* 实时监控页：整页文字放大 1 号（12→13 / 13→14 / 14→15 / 15→16） */
.tr-bigger { font-size: 15px; }
.tr-bigger .admin-table { font-size: 15px; }
.tr-bigger .admin-table thead th, .tr-bigger .admin-table tbody td { font-size: 15px; }
.tr-bigger .admin-table small, .tr-bigger .muted { font-size: 15px; }
.tr-bigger .do-tr-val { font-size: 21px; }
.tr-bigger .do-tr-lab { font-size: 15px; }
.tr-bigger .dt-bar .dt-label, .tr-bigger .dt-stat, .tr-bigger .dt-export { font-size: 15px; }
/* 占比列：进度条 + 百分比小字整体居中，列宽已减半 */
.tr-pct { text-align: center; }
.tr-pct .do-tr-bar { margin: 0 auto; }
/* 末列（预计到期 / 占用）下方小字统一居中 */
.admin-table td.tr-expire, .admin-table td.tr-expire .cell-clip { text-align: center; }

/* 内部账号：权限列允许换行（列宽减半后内容多时不再溢出） */
.emp-table td.emp-perm-cell { white-space: normal; word-break: break-word; line-height: 1.9; }
.emp-table td.emp-perm-cell .tag-badge { display: inline-block; margin: 1px 2px 1px 0; }

/* 可点开「小耳朵」看全文的单元格：给出可点击提示，且不参与就地展开 */
.cell-clip[data-ear-text] {
  cursor: pointer;
  text-decoration: underline dotted rgba(255, 143, 199, .55);
  text-underline-offset: 3px;
}
.cell-clip[data-ear-text]:hover { color: #ff8fc7; text-decoration-color: #ff8fc7; }
.cell-clip[data-ear-text].open { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* #R19-4 批注输入框改为 textarea，支持单行 ↔ 两行自动增高；JS 控制 height，max-height 封顶两行 */
#commentInput.cib-input {
  font-family: inherit;
  line-height: 20px;
  resize: none;
  overflow-y: hidden;
  box-sizing: border-box;
  max-height: 60px;          /* 约两行：20*2 + 20px padding */
  min-height: 40px;          /* 单行基准高度 */
  align-self: center;
  vertical-align: middle;
}
#commentInput.cib-input.overflow { overflow-y: auto; }

/* #R19-4 批注状态：默认显示完整（已解决/未解决），窄版容器查询下缩成 1 字（已/未） */
.ci-status-short { display: none; }

/* #R19-4 右侧批注栏缩窄时压缩布局：用容器查询，拖拽分割线缩窄即生效，不依赖视口宽度 */
.comments-panel { container-type: inline-size; }
@container (max-width: 360px) {
  .ci-meta { gap: 6px; font-size: 15px; }                       /* 压缩头像→状态之间的留白 */
  .ci-author { max-width: 18px; }                                /* 用户名最少缩成 1 字 + … */
  .ci-author.short { max-width: 18px; }
  .ci-status-full { display: none; }
  .ci-status-short { display: inline; }                         /* 未解决→未 / 已解决→已 */
  .ci-corner .ci-priority { display: none; }                    /* 窄版优先保状态，优先级角标让位 */
}
/* #R19-7 同上：用 JS 切换的 .narrow 类兜底（更可靠，不依赖容器查询兼容性） */
.comments-panel.narrow .ci-meta { gap: 6px; font-size: 15px; }
.comments-panel.narrow .ci-author { max-width: 18px; }
.comments-panel.narrow .ci-author.short { max-width: 18px; }
.comments-panel.narrow .ci-status-full { display: none; }
.comments-panel.narrow .ci-status-short { display: inline; }
.comments-panel.narrow .ci-corner .ci-priority { display: none; }

/* #R19-8 整体美术效果提色：在不破坏信息层级的前提下，给时间节点/数据报表/小组详情/成员列表
   等板块增加粉紫渐变边框、粉紫色描边、柔和高亮，让整体偏暗的页面多一点活力 */
.rep-h3 { border-bottom: 1px solid rgba(255,143,199,.28) !important; }
.rep-box-head .rep-h3::before { background: var(--grad-accent) !important; box-shadow: 0 0 8px rgba(255,143,199,.55); }
.rep-detail-row { background: rgba(0,0,0,0.32) !important; border-color: rgba(255,126,179,.18) !important; transition: border-color .15s, background .15s; }
.rep-detail-row:hover { border-color: rgba(255,126,199,.55); background: rgba(124,58,237,.14); }
.rd-toggle { color: var(--accent); font-size: 15px; }
.rep-detail-sub { background: rgba(0,0,0,0.32); border: 1px solid rgba(124,58,237,.22); border-radius: 0 0 8px 8px; padding: 8px 12px; margin: -6px 0 10px; display: flex; flex-direction: column; gap: 6px; }
.rd-comment { display: flex; align-items: baseline; gap: 10px; padding: 6px 8px; background: rgba(38,34,58,.4); border: 1px solid rgba(255,126,179,.10); border-radius: 8px; }
.rdc-meta { flex: 0 0 220px; font-size: 15px; color: #c4baff; white-space: nowrap; }
.rdc-text { flex: 1; min-width: 0; font-size: 15px; color: var(--text); word-break: break-all; }
.rd-comment.excluded { opacity: .42; text-decoration: line-through; text-decoration-color: rgba(255,126,179,.55); }
.rep-children-head { color: var(--text-2); }
.rep-children-head b { background: var(--grad-accent); -webkit-background-clip: text; background-clip: text; color: transparent; }
#projectDetailBody .rep-link-layout { flex-direction: column; }
#projectDetailBody .rep-link-left,
#projectDetailBody .rep-link-right { flex: none; width: 100%; min-width: 0; }
.rep-stat-row .rep-stat { background: rgba(0,0,0,0.32); border: 1px solid rgba(168,85,247,.22); }
.rep-stat-row .rep-stat:hover { border-color: rgba(255,143,199,.45); }
.ghost-btn:hover { border-color: rgba(255,126,179,.55); color: #ffb6d5; }
.member-card { border-color: rgba(255,143,199,.14); box-shadow: 0 4px 18px rgba(168,85,247,.06); }
/* 集数分配：视图切换 + 单集 chip */
.rep-assign-toggle { display: inline-flex; gap: 6px; margin: 4px 0 10px; }
.ra-view-btn { background: var(--bg-3); border: 1px solid var(--line); color: var(--text-2); border-radius: 8px; padding: 4px 12px; font-size: 15px; cursor: pointer; }
.ra-view-btn.on { background: var(--grad-accent); border-color: transparent; color: #fff; }
.ra-member-view, .ra-episode-view { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.rep-assign-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 12px; background: rgba(0,0,0,0.32); border: 1px solid rgba(255,126,179,.14); border-radius: 10px; font-size: 15px; }
.ra-name { min-width: 90px; font-weight: 600; color: var(--text); }
.ra-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; flex: 1; min-width: 120px; }
.ra-chip { display: inline-flex; align-items: center; gap: 3px; padding: 4px 10px; border-radius: 999px; background: rgba(124,58,237,.18); border: 1px solid rgba(168,85,247,.35); color: #d9ccff; font-size: 15px; cursor: pointer; }
.ra-chip:hover { border-color: var(--accent); color: #fff; background: rgba(255,126,179,.22); }
.ra-empty { color: var(--text-3); font-size: 15px; }
.ra-input { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 6px 8px; font-size: 15px; }
.ra-batch-input { width: 120px !important; }
/* 四大板块底色提亮：黑32%底+粉紫描边 */
#wsBoard, #wsTasks, #wsDetail, #wsMembersList { background: rgba(0,0,0,0.32); border: 1px solid rgba(255,126,179,.18); border-radius: 14px; padding: 14px; box-shadow: 0 4px 22px rgba(124,58,237,.10); }
#wsBoard .ws-panel-head, #wsTasks .ws-panel-head, #wsDetail .ws-panel-head, #wsMembersList .ws-panel-head { border-bottom: 1px solid rgba(255,143,199,.20); padding-bottom: 10px; }
#wsBoard .rep-sub, #wsTasks .rep-sub, #wsDetail .rep-sub, #wsMembersList .rep-sub { color: #d9ccff; }
#wsBoard .rep-box, #wsTasks .rep-box, #wsDetail .rep-box, #wsMembersList .rep-box { border-color: rgba(255,126,179,.30); }
.board-col { background: rgba(0,0,0,0.32); border: 1px solid rgba(124,58,237,.22); }
.task-item, .member-card, .invite-item, .ii-row { background: rgba(0,0,0,0.32) !important; border-color: rgba(255,126,179,.16) !important; }
.member-card:hover { box-shadow: 0 10px 30px rgba(168,85,247,.18); border-color: rgba(255,143,199,.40); }
.rep-detail-row { grid-template-columns: auto 1.2fr 0.8fr 2.4fr auto; }
.rd-left { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
/* 集数按集数视图的表格 */
.ra-episode-table { width: 100%; border-collapse: separate; border-spacing: 0; margin-bottom: 10px; font-size: 15px; background: rgba(0,0,0,0.32); border: 1px solid rgba(255,126,179,.18); border-radius: 10px; overflow: hidden; }
.ra-episode-table th, .ra-episode-table td { padding: 9px 12px; border-bottom: 1px solid rgba(255,126,179,.10); text-align: left; }
.ra-episode-table thead th { background: rgba(124,58,237,.20); color: #d9ccff; font-weight: 600; font-size: 15px; white-space: nowrap; }
.ra-episode-table tbody tr:last-child td { border-bottom: none; }
.ra-episode-table tbody tr:hover { background: rgba(255,126,179,.08); }
.ra-episode-table td.ra-progress { color: var(--accent); white-space: nowrap; }
.ra-episode-table td.ra-progress .ra-progress-status { font-weight: 700; white-space: nowrap; }
.ra-episode-table td.ra-total-cmt { color: #ffd1ec; font-weight: 600; }
.bp-faq-empty { padding: 18px; text-align: center; color: var(--text-3); font-size: 15px; }
/* 解锁更多：除背景外整体下移25px，核心优势/FAQ下移5px（净位置 = 25-0） */
.bp-content-inner { transform: translateY(25px); }
.bp-section-core-advantage, .bp-section-faq { transform: translateY(0); }
/* 利润计算器：主按钮同行 */
.profit-side-actions { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.profit-side-actions .profit-main-row { display: flex; gap: 8px; }
.profit-side-actions .profit-main-row .primary-btn { flex: 1; }
/* 财务页导出/常见问题设置块 */
.profit-side-actions #pfCalc, .profit-side-actions #pfConfirm { width: auto; }
.faq-edit-item { background: rgba(0,0,0,0.32); border: 1px solid rgba(255,126,179,.20); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.faq-edit-item input, .faq-edit-item textarea { width: 100%; background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 8px 10px; font-size: 15px; margin: 4px 0; }
.faq-edit-item textarea { min-height: 60px; resize: vertical; }
/* 数据报表「选择导出内容」弹窗：grid 严格对齐 + 无外框 */
#expSections { display: flex; flex-direction: column; gap: 4px; padding: 6px 0; }
#expSections label { display: grid; grid-template-columns: 24px 1fr; gap: 10px; align-items: center; cursor: pointer; padding: 7px 10px; border-radius: 8px; font-size: 15px; line-height: 1.45; color: var(--text); transition: background .14s; white-space: nowrap; }
#expSections label:hover { background: rgba(255,126,179,.10); }
#expSections label .exp-sec { justify-self: center; }
#expSections label span { overflow: hidden; text-overflow: ellipsis; }
/* #R19-10 集数分配单表双视图 */
.ra-input-area { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.ra-episode-table { display: table; width: 100%; table-layout: auto; }
.ra-episode-table .ra-main-row { cursor: pointer; }
.ra-episode-table .ra-main-row.open, .ra-episode-table .ra-main-row:hover { background: rgba(255,126,179,.10); }
.ra-episode-table .ra-sub-row td { background: rgba(0,0,0,0.25); padding: 8px 12px; }
.ra-episode-table td.ra-perver { font-size: 15px; color: var(--text-2); white-space: nowrap; }
.ra-load { font-size: 15px; padding: 2px 10px; border-radius: 999px; font-weight: 600; line-height: 1.5; display: inline-block; }
.ra-load.ra-over { background: rgba(255,107,157,.16); color: #ff8fa8; }
.ra-load.ra-idle { background: rgba(124,58,237,.14); color: #c9a6ff; }
.ra-load.ra-ok { background: rgba(94,234,212,.14); color: #7debe0; }
.ra-episode-table-wrap { overflow-x: auto; margin-bottom: 4px; }
.ra-episode-table-wrap .ra-episode-table { margin-bottom: 0; min-width: 980px; }
.rd-exclude { display: inline-flex; align-items: center; gap: 3px; font-size: 15px; color: var(--text-3); margin-right: 6px; white-space: nowrap; }
.rd-exclude input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer; }
/* #R19-11 集数分配工具栏 / 展开摘要 / 时间轴 */
.ra-toolbar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.ra-toolbar .ra-export-btn { margin-left: auto; white-space: nowrap; }
.q-rename-wrap.report-export-wrap { width: min(572px, 92vw) !important; }
.report-export-body { gap: 12px; }
.report-export-mode-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.modal .report-export-mode { display: flex; align-items: center; gap: 10px; min-width: 0; margin: 0; padding: 12px 14px; border: 1px solid rgba(255,126,179,.25); border-radius: 12px; background: rgba(255,255,255,.04); color: var(--text); cursor: pointer; }
.modal .report-export-mode:has(input:checked) { border-color: #ff7eb3; background: rgba(255,126,179,.14); box-shadow: 0 0 0 2px rgba(255,126,179,.10); }
.modal .report-export-mode input, .modal .report-export-select-all input, .modal .report-export-member-item input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; padding: 0; accent-color: var(--accent); }
.report-export-mode span { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
.report-export-mode b { color: #ffeaf3; font-size: 17px; }
.report-export-mode small { color: var(--text-3); font-size: 15px; line-height: 1.4; }
.report-export-members { border: 1px solid rgba(255,126,179,.22); border-radius: 12px; overflow: hidden; background: rgba(0,0,0,.20); }
.report-export-members.hidden { display: none; }
.modal .report-export-select-all { display: flex; align-items: center; gap: 9px; margin: 0; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.08); color: var(--text); cursor: pointer; }
.report-export-select-all span { font-weight: 700; }
.report-export-select-all em { margin-left: auto; color: #ff9ec7; font-size: 15px; font-style: normal; }
.report-export-member-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 8px; max-height: 240px; overflow-y: auto; padding: 8px; }
.modal .report-export-member-item { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; padding: 8px 10px; border-radius: 8px; color: var(--text-2); cursor: pointer; }
.modal .report-export-member-item:hover { background: rgba(255,126,179,.10); color: #fff; }
.report-export-member-item span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-export-empty { padding: 18px 14px; color: var(--text-3); text-align: center; font-size: 15px; }
@media (max-width: 560px) { .report-export-mode-list, .report-export-member-list { grid-template-columns: 1fr; } }
.ra-toolbar-title { font-size: 16px; font-weight: 700; color: var(--text); }
.ra-sel { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; color: var(--text-2); white-space: nowrap; }
.rep-folder-inline { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-left: 8px; margin-left: 4px; border-left: 1px solid var(--line); }
.rep-folder-inline .rep-ff-label { font-size: 15px; color: var(--text-2); white-space: nowrap; }
.rep-folder-inline .ra-folder-chk { display: inline-flex; align-items: center; gap: 4px; font-size: 15px; color: var(--text-2); padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid var(--line); cursor: pointer; }
.rep-folder-inline .ra-folder-chk input { accent-color: var(--accent); margin: 0; }
.rep-folder-inline .ra-folder-chk:hover { background: rgba(124,58,237,.12); border-color: rgba(124,58,237,.32); }
.ra-sel select { background: var(--bg-3); border: 1px solid var(--line); color: var(--text); border-radius: 6px; padding: 4px 8px; font-size: 15px; }
.ra-sub-summary { display: flex; gap: 16px; font-size: 15px; color: var(--text-2); margin-bottom: 8px; flex-wrap: nowrap; white-space: nowrap; overflow-x: auto; align-items: baseline; }
.ra-sub-summary b { color: var(--accent); font-size: 16px; }
.ra-sub-summary .ra-perver-list { color: var(--text-3); font-size: 15px; padding: 1px 0; }
.ra-sub-summary .ra-perver-list:empty { display: none; }
.ra-sub-meta { display: flex; gap: 16px; flex-wrap: nowrap; overflow-x: auto; font-size: 15px; color: var(--text-3); margin-bottom: 8px; white-space: nowrap; }
.ra-sub-meta b { color: var(--text); font-weight: 600; }
.ra-timeline { position: relative; height: 22px; background: rgba(124,58,237,.18); border: 1px solid rgba(168,85,247,.30); border-radius: 999px; margin: 4px 0 8px; }
.ra-timeline-dot { position: absolute; top: 50%; width: 10px; height: 10px; border-radius: 50%; background: var(--grad-accent); transform: translate(-50%, -50%); box-shadow: 0 0 6px rgba(255,126,179,.6); }
.ra-episode-table td { font-size: 15px; }

.risk-req-section { margin: 14px 0 6px; padding: 12px 14px; background: rgba(124,58,237,.06); border: 1px solid rgba(124,58,237,.22); border-radius: 12px; }
.risk-req-title { margin: 0 0 8px; font-size: 16px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 8px; }
.risk-req-title small { font-weight: 400; color: var(--text-3); font-size: 15px; }
.risk-req-section .admin-table { margin-top: 4px; }

/* ===== 用户查看弹窗（艺术化排版） ===== */
.uv-title { margin: 0 0 14px; font-size: 20px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.uv-title .uv-name { background: linear-gradient(135deg, var(--accent), var(--accent-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.uv-section { margin-bottom: 14px; padding: 12px 16px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.uv-section.uv-section-base { background: linear-gradient(135deg, rgba(124,58,237,.08), rgba(255,126,179,.05)); border-color: rgba(124,58,237,.22); }
.uv-section.uv-section-ent { background: linear-gradient(135deg, rgba(255,179,71,.06), rgba(255,126,179,.04)); border-color: rgba(255,179,71,.28); }
.uv-section.uv-ban { background: rgba(255,107,107,.06); border-color: rgba(255,107,107,.32); }
.uv-section-title { margin: 0 0 10px; font-size: 15px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 8px; }
.uv-kv-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; font-size: 15px; }
.uv-kv-grid .uv-full { grid-column: 1 / -1; }
.uv-kv { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.uv-k { color: var(--text-3); font-size: 15px; flex: 0 0 auto; min-width: 86px; }
.uv-k::after { content: '\00a0'; margin-right: 4px; }
.uv-v { color: var(--text); font-weight: 500; word-break: break-word; min-width: 0; flex: 1; }
.uv-kv-grid > div { display: flex; align-items: baseline; gap: 6px; }
.uv-enti-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
.uv-section-ent .uv-enti-grid,
.uv-section-ent .uv-v { font-size: 15px; line-height: 1.45; }
.uv-mini-cap { margin-top: 10px; padding: 8px 10px; background: rgba(255,255,255,.04); border-radius: 6px; font-size: 15px; color: var(--text-2); }
.uv-archive { margin-top: 10px; padding: 8px 12px; background: rgba(255,255,255,.03); border: 1px dashed var(--line); border-radius: 8px; font-size: 15px; }
.uv-archive summary { cursor: pointer; color: var(--text-2); font-weight: 600; padding: 2px 0; }
.uv-archive-item { margin: 10px 0; padding: 10px 12px; background: rgba(255,107,107,.04); border-left: 3px solid rgba(255,107,107,.5); border-radius: 6px; }
.uv-archive-head { font-size: 15px; font-weight: 700; color: #ff8b8b; margin-bottom: 8px; }

/* ===== 入驻企业页 ===== */
.ent-card { margin-bottom: 18px; padding: 16px 18px; background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 4px 18px rgba(0,0,0,.18); }
.ent-card-head { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.ent-card-title { display: flex; align-items: center; gap: 10px; font-size: 17px; }
.ent-card-name { font-weight: 700; color: var(--text); }
.ent-card-meta { display: flex; gap: 14px; flex-wrap: wrap; color: var(--text-3); font-size: 15px; }
.ent-card-body { font-size: 15px; }
.ent-sub { margin: 14px 0 8px; font-size: 15px; font-weight: 700; color: var(--text); }
/* 新版「列表+手风琴」布局 */
.ent-list-table td, .ent-list-table th { white-space: nowrap; }
.ent-list-table .cell-clip { max-width: 220px; }
.ent-toggle { display: inline-block; width: 22px; text-align: center; color: var(--text-3); text-decoration: none; font-size: 15px; cursor: pointer; user-select: none; }
.ent-toggle:hover { color: var(--text); }
.ent-detail.hidden { display: none; }
.ent-detail-box { padding: 14px 8px 6px; }
.ent-section { margin: 0 0 16px; padding: 12px 14px; background: rgba(255,255,255,.02); border: 1px solid var(--line); border-radius: 10px; }
.ent-section-info { background: linear-gradient(135deg, rgba(255,179,71,.06), rgba(255,126,179,.04)); border-color: rgba(255,179,71,.28); }
.ent-section-team { background: linear-gradient(135deg, rgba(124,58,237,.06), rgba(255,126,179,.03)); border-color: rgba(124,58,237,.22); }
.ent-section-title { margin: 0 0 10px; font-size: 15px; font-weight: 700; color: var(--text); display: flex; align-items: center; gap: 8px; }
.ent-status-row { margin: 6px 0 10px; font-size: 15px; color: var(--text-2); }
.ent-section .admin-table { margin: 4px 0 0; }
.ent-section .admin-table th, .ent-section .admin-table td { font-size: 15px; }

/* ===== 常见问题编辑 ===== */
.faqs-edit-list { margin-top: 6px; display: flex; flex-direction: column; gap: 12px; }
.faqs-edit-row { padding: 10px 12px; background: rgba(0,0,0,.25); border: 1px solid var(--line); border-radius: 10px; }
.faqs-edit-row-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.faqs-edit-idx { font-weight: 700; color: var(--text-3); font-size: 15px; min-width: 28px; }
.faqs-edit-q { flex: 1; background: rgba(0,0,0,.32); border: 1px solid var(--line); border-radius: 6px; color: var(--text); padding: 6px 8px; font-size: 15px; }
.faqs-edit-q:focus { outline: none; border-color: rgba(124,58,237,.55); }
.faqs-edit-del { background: var(--grad-accent); border: none; color: #fff; cursor: pointer; padding: 4px 12px; border-radius: 999px; font-size: 15px; font-weight: 600; box-shadow: 0 2px 8px rgba(124,58,237,.28); transition: opacity .15s, transform .15s; }
.faqs-edit-del:hover { opacity: 0.92; transform: translateY(-1px); }
.faqs-edit-del:active { transform: translateY(0); }
.faqs-edit-a { width: 100%; min-height: 70px; background: rgba(0,0,0,.32); border: 1px solid var(--line); border-radius: 6px; color: var(--text); padding: 8px 10px; font-size: 15px; resize: vertical; }
.faqs-edit-a:focus { outline: none; border-color: rgba(124,58,237,.55); }
.faqs-edit-actions { display: flex; gap: 6px; }

.im-row.im-row-col textarea { min-height: 56px; line-height: 1.45; padding: 6px 8px; font-size: 15px; }

/* 推送下级：逐文件选择目标的小耳朵弹窗。 */
.push-down-wrap .pa-all-bar { display: flex; flex-wrap: wrap; gap: 8px; }
.push-down-wrap .pa-name { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.push-down-wrap .pd-trace-note { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; color: var(--text-3); font-size: 15px; font-weight: 400; }
.push-down-wrap .pa-file-target { flex: 0 0 220px; }
@media (max-width: 640px) {
  .push-down-wrap .pa-item { align-items: stretch; flex-direction: column; }
  .push-down-wrap .pa-file-target { flex-basis: auto; width: 100%; max-width: none; }
}

/* 风险申请表必须服从后台内容区宽度；覆盖后台通用表格的最小列宽和大内边距。 */
#bossView .risk-apply-table { table-layout: fixed; width: 100% !important; max-width: 100% !important; min-width: 0 !important; }
#bossView .risk-apply-table th,
#bossView .risk-apply-table td { min-width: 0 !important; box-sizing: border-box; padding: 8px 4px !important; overflow: hidden; }
#bossView .risk-apply-table th { white-space: normal !important; }
#bossView .risk-apply-table .risk-request-reason { white-space: normal !important; overflow-wrap: anywhere; word-break: break-word; }
#bossView .risk-apply-table .risk-project-id { white-space: normal !important; overflow-wrap: anywhere; word-break: break-all; text-overflow: clip; }
#bossView .risk-apply-table .row-actions { min-width: 0 !important; gap: 3px; white-space: normal; }
#bossView .risk-apply-table .row-actions .action-btn { min-width: 0; padding: 4px 5px; }

/* 本轮：小组上限提示必须留在小耳朵背景内，长文自动增高 */
.q-rename-wrap.np-wrap.plm-wrap { width: min(760px, 94vw) !important; }
.plm-wrap .plm-message { width: 100%; max-width: 100%; white-space: normal !important; overflow-wrap: anywhere; word-break: normal; text-align: left; box-sizing: border-box; }
.q-rename-wrap.np-wrap.plm-wrap > .q-rename-header,
.q-rename-wrap.np-wrap.plm-wrap > .np-form-body,
.q-rename-wrap.np-wrap.plm-wrap > .q-rename-actions {
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  box-sizing: border-box;
}
.plm-wrap .q-rename-actions { flex-wrap: wrap; }
.plm-wrap .q-rename-btn { max-width: 100%; white-space: normal; }
.proj-card .pc-name-line { display:flex; align-items:center; gap:6px; min-width:0; }
.proj-card .pc-name-line .pc-name { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.proj-card .pc-temp-remove { flex:0 0 22px; width:22px; height:22px; padding:0; border:1px solid rgba(255,107,107,.45); border-radius:50%; background:rgba(255,107,107,.12); color:#ff8f8f; cursor:pointer; line-height:18px; font-size:16px; }
.proj-card .pc-temp-remove:hover { background:rgba(255,107,107,.28); color:#fff; border-color:#ff6b6b; }
.dialog-card.dissolve-reason-card { width:min(640px, 92vw); max-width:92vw; box-sizing:border-box; }
.dissolve-reason-card .dialog-title { margin-bottom:14px; }
.dissolve-reason-card .dialog-body { min-width:0; max-height:calc(100vh - 250px); overflow-y:auto; padding:0 4px 0 0; margin-bottom:14px; white-space:normal; }
.dissolve-reason-card .dialog-actions { padding:0; }
.dissolve-reason-dialog { text-align:left; width:100%; min-width:0; box-sizing:border-box; }
.dissolve-reason-dialog > p { margin:0 0 10px; color:var(--text-2); line-height:1.55; }
.dissolve-reason-presets { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:8px; margin-bottom:10px; }
.dissolve-reason-presets label { display:flex; align-items:flex-start; gap:7px; min-width:0; margin:0; padding:10px 12px; border:1px solid var(--line); border-radius:9px; background:var(--bg-3); color:var(--text); cursor:pointer; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
.dissolve-reason-presets label span { min-width:0; }
.dissolve-reason-presets input { width:auto; flex:0 0 auto; }
.dissolve-reason-dialog textarea { display:block; width:100%; min-height:78px; resize:vertical; box-sizing:border-box; margin:0; }
.dissolve-reason-dialog small { display:block; margin-top:7px; color:var(--text-3); line-height:1.45; }
@media (max-width:600px) { .dissolve-reason-dialog { min-width:0; } .dissolve-reason-presets { grid-template-columns:1fr; } }

/* 风险管控临时进入的小组：页面级只读，保留浏览、筛选和下载。 */
#projectWorkspace.risk-readonly #wsUploadBtn,
#projectWorkspace.risk-readonly #newRootFolderBtn,
#projectWorkspace.risk-readonly .page-select-all,
#projectWorkspace.risk-readonly #batchToolbar { display:none !important; }
#projectWorkspace.risk-readonly #wsName { cursor:default; }
#projectWorkspace.risk-readonly #inviteFromInfo { display:none !important; }
@media (max-width: 560px) {
  .q-rename-wrap.np-wrap.plm-wrap { width: 92vw !important; padding-left: 16px; padding-right: 16px; }
  .plm-wrap .np-form-body { padding-left: 0; padding-right: 0; }
  .plm-wrap .q-rename-actions { justify-content: stretch; }
  .plm-wrap .q-rename-btn { flex: 1 1 180px; }
}

/* 用户名单 · 查看：沿用后台表格的卡片、边线、字号和信息层级 */
.modal.user-view-modal { width: 980px; max-width: 96vw; }
.user-view-modal .modal-card { padding: 22px; max-height: 88vh; }
.user-view-wrap { display: flex; flex-direction: column; gap: 12px; }
.user-view-wrap .uv-title { margin-bottom: 0; }
.user-view-wrap .uv-section { margin: 0; padding: 14px 16px; background: var(--bg-2); border-color: var(--line); }
.user-view-wrap .uv-section-title { padding-bottom: 8px; margin-bottom: 10px; border-bottom: 1px solid rgba(255,255,255,.07); }
.user-view-wrap .uv-kv-grid, .user-view-wrap .uv-enti-grid { gap: 0; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: rgba(255,255,255,.015); }
.user-view-wrap .uv-kv-grid > div, .user-view-wrap .uv-enti-grid > .uv-kv { min-height: 42px; padding: 9px 12px; border-bottom: 1px solid rgba(255,255,255,.06); box-sizing: border-box; }
.user-view-wrap .uv-k, .user-view-wrap .uv-v, .user-view-wrap .uv-section-ent .uv-v { font-size: 15px; line-height: 1.5; }
.user-view-wrap .uv-k { min-width: 96px; color: var(--text-3); }
.user-view-wrap .uv-v { color: var(--text); }
.user-view-wrap .modal-actions { margin-top: 0 !important; padding-top: 8px; border-top: 1px solid var(--line); }
@media (max-width: 720px) {
  .user-view-wrap .uv-kv-grid, .user-view-wrap .uv-enti-grid { grid-template-columns: 1fr; }
}

/* 用户中心 · 小组管理查看 */
.project-record-view { display: flex; flex-direction: column; gap: 14px; }
.project-record-view h3 { margin: 0; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.prv-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.prv-grid > div { display: flex; gap: 12px; padding: 12px 14px; background: var(--bg-2); border-bottom: 1px solid rgba(255,255,255,.06); }
.prv-grid span, .prv-section > span { min-width: 92px; color: var(--text-3); font-size: 15px; }
.prv-grid b { color: var(--text); font-size: 15px; word-break: break-word; }
.prv-section { padding: 14px; background: var(--bg-2); border: 1px solid var(--line); border-radius: 12px; }
.prv-section p { margin: 8px 0 0; color: var(--text); line-height: 1.65; white-space: pre-wrap; }
.prv-members { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.prv-members > span { display: inline-flex; align-items: center; gap: 6px; min-width: 0; padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--text-2); }
.prv-members i { width: 9px; height: 9px; border-radius: 50%; }

/* 批注栏顶部与筛选区统一按“按位置”下拉框的规格显示。 */
.comments-panel.review-side .cp-head > .cp-filter-toggle,
.comments-panel.review-side .cp-head > #exportBtn,
.comments-panel.review-side .cp-filters > select,
.comments-panel.review-side .cp-filters > input,
.comments-panel.review-side .cp-filters > button,
.comments-panel.review-side #filterAssigned {
  height:30px !important;
  min-height:30px !important;
  padding:3px 8px !important;
  border-radius:6px !important;
  box-sizing:border-box;
  font-size:16px !important;
  line-height:22px !important;
  font-weight:400 !important;
}
.comments-panel.review-side .cp-head > .cp-filter-toggle,
.comments-panel.review-side .cp-head > #exportBtn,
.comments-panel.review-side #filterAssigned { display:inline-flex; align-items:center; justify-content:center; }


/* 审阅页右上角统一使用“审阅状态”控件的字号、高度与间距。 */
.review-head { flex-wrap:wrap; row-gap:8px; }
.review-head .rh-right { gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.review-head .rh-right .status-select,
.review-head .rh-right .status-select label,
.review-head .rh-right .status-select select,
.review-head .rh-right > button,
.review-head .rh-right > select { font-size:15px; line-height:20px; }
.review-head .rh-right .status-select select,
.review-head .rh-right > button,
.review-head .rh-right > select { height:34px; min-height:34px; padding:6px 11px; border-radius:7px; box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; }
.review-head .rh-right .status-select { height:34px; align-items:center; }
@media (max-width:1500px) {
  .review-head .rh-left,
  .review-head .rh-right { flex:1 1 100%; min-width:0; }
  .review-head .rh-right { justify-content:flex-start; }
}
.media-prepare-card { position: relative; pointer-events: auto; width: min(390px,80%); padding: 22px; border: 1px solid rgba(255,126,179,.3); border-radius: 16px; background: rgba(16,13,26,.9); box-shadow: 0 18px 60px rgba(0,0,0,.35); color: #f6efff; text-align: center; }
.media-prepare-close { position: absolute; top: 9px; right: 10px; width: 28px; height: 28px; padding: 0; border: 1px solid rgba(255,255,255,.16); border-radius: 8px; background: rgba(255,255,255,.06); color: #eee8f8; font-size: 20px; line-height: 24px; cursor: pointer; }
.media-prepare-close:hover { border-color: rgba(255,126,179,.65); background: rgba(255,126,179,.12); }
.media-prepare-card b { display: block; margin-top: 10px; font-size: 16px; }
.media-prepare-card p { margin: 7px 0 13px; color: #b8aed0; font-size: 15px; line-height: 1.65; }
.media-prepare-card span { display: block; margin-top: 8px; color: #887f9f; font-size: 15px; }
.media-prepare-spinner { width: 28px; height: 28px; margin: auto; border: 3px solid rgba(255,255,255,.12); border-top-color: #ff7eb3; border-radius: 50%; animation: mediaPreparing .8s linear infinite; }
.media-prepare-track { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.1); }
.media-prepare-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#7c3aed,#ff7eb3); transition: width .35s ease; }
@keyframes mediaPreparing { to { transform: rotate(360deg); } }

/* 视频全屏直接放大纯画面容器，底部波形与两排按钮不进入全屏。 */
#stage:fullscreen,
#stage:-webkit-full-screen { width: 100% !important; height: 100% !important; padding: 0 !important; margin: 0 !important; background: #000 !important; overflow: hidden !important; }
#stage:fullscreen > :not(#video),
#stage:-webkit-full-screen > :not(#video) { display: none !important; }
#stage:fullscreen #video,
#stage:-webkit-full-screen #video { display: block !important; width: 100% !important; height: 100% !important; max-width: none !important; max-height: none !important; object-fit: contain !important; transform: none !important; }

/* 底部两行统一 45px；其上的音频波形栏缩为原高度的一半。 */
.comment-input-bar { height: 45px; min-height: 45px; box-sizing: border-box; padding: 3px 12px !important; gap: 8px; row-gap: 4px; }
.comment-input-bar .cib-input { padding: 7px 10px; }
.comment-input-bar #cibSend { height: 38px; min-height: 38px; }
.controls { height: 45px; min-height: 45px; box-sizing: border-box; padding: 2px 20px !important; }
.video-wave-track { padding: 3px 16px 4px !important; }
.video-wave-track .vwt-canvas { height: 26px !important; }

/* 底部按钮框四边各收 1px。 */
.controls .ctrl-btn { height: 38px; }
.controls .ctrl-btn:not(.wide) { width: 38px; }
.controls .ctrl-btn.wide { padding-left: 13px; padding-right: 13px; }
.comment-input-bar .tool-btn,
.comment-input-bar .ctrl-btn,
.comment-input-bar .ghost-btn.rv-toggle { width: 30px; height: 30px; }
.comment-input-bar #cibSend { height: 36px; min-height: 36px; padding-left: 21px; padding-right: 21px; }

/* 批注点时间轴减半并在自身区域内严格上下居中。 */
.timeline-bar { height: 14px; min-height: 14px; box-sizing: border-box; padding: 0 20px !important; display: flex; align-items: center; }
.timeline-track { width: 100%; height: 8px; }

/* 审阅页上下左右收起后的展开边条统一为 10px。 */
.review-view.collapsed-head .rv-head-edge { height: 10px; min-height: 10px; flex: 0 0 10px; gap: 0; overflow: hidden; }
.review-view.collapsed-head .rv-head-edge > * { display: none !important; }
.review-view.collapsed-bottom .rv-bottom-edge { height: 10px; min-height: 10px; flex: 0 0 10px; gap: 0; overflow: hidden; }
.review-view.collapsed-bottom .rv-bottom-edge > * { display: none !important; }
.review-view.collapsed-side .rv-side-edge { width: 10px; min-width: 10px; flex: 0 0 10px; padding: 0; gap: 0; overflow: hidden; }
.review-view.collapsed-side .rv-side-edge > * { display: none !important; }
.layout.sidebar-collapsed .sidebar { width: 10px; min-width: 10px; }
.layout.sidebar-collapsed .sidebar-expand-btn { width: 10px; min-width: 10px; padding: 0; font-size: 0; overflow: hidden; }


/* 错误提示：粉色渐变边框 */
.toast.error {
  border: 2px solid transparent;
  background:
    linear-gradient(var(--bg-3), var(--bg-3)) padding-box,
    linear-gradient(90deg, #ff7eb3 0%, #7c5cff 100%) border-box;
  box-shadow: 0 0 18px rgba(255,126,179,.35);
}

/* ===== 后台「网站设置」页视觉升级（cuteGlow 粉紫 · 玻璃拟态） ===== */
/* 作用域限定在 .site-tabs / .site-pane，不污染其他页面 */
.site-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
  padding: 6px;
  border-radius: 16px;
  background: rgba(29,26,43,0.30);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,143,199,0.18);
}
.site-tab {
  border: 1px solid transparent;
  background: transparent;
  color: var(--text-2);
  padding: 9px 16px;
  border-radius: 999px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: .2px;
  transition: all .22s cubic-bezier(.34,1.56,.64,1);
  white-space: nowrap;
}
.site-tab:hover {
  color: #ffb6d5;
  background: rgba(255,143,199,0.10);
  border-color: rgba(255,143,199,0.30);
  transform: translateY(-1px);
}
.site-tab.active {
  color: #fff;
  background: linear-gradient(135deg, #ff7eb3 0%, #7c5cff 100%);
  border-color: transparent;
  box-shadow: 0 6px 16px rgba(124,58,237,.35), inset 0 1px 0 rgba(255,255,255,.18);
  transform: translateY(-1px);
}
/* 设置面板内统一排版：小字标签 + 玻璃输入框 */
.site-pane { animation: sitePaneIn .28s ease both; }
@keyframes sitePaneIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.site-pane > label {
  display: block;
  font-size: 15px;
  font-weight: 600;
  color: #ffb6d5;
  letter-spacing: .3px;
  margin: 14px 0 6px;
}
.site-pane > label:first-child { margin-top: 0; }
.site-pane > input,
.site-pane > textarea,
.site-pane > select {
  display: block;
  width: 100%;
  background: rgba(10,8,18,0.55);
  border: 1px solid rgba(255,143,199,0.22);
  border-radius: 11px;
  padding: 11px 14px;
  color: var(--text);
  font-size: 15px;
  transition: border-color .18s, box-shadow .18s, background .18s;
}
.site-pane > input::placeholder,
.site-pane > textarea::placeholder { color: rgba(255,234,243,.35); }
.site-pane > input:focus,
.site-pane > textarea:focus,
.site-pane > select:focus {
  outline: none;
  border-color: #ff7eb3;
  background: rgba(10,8,18,0.72);
  box-shadow: 0 0 0 4px rgba(255,126,179,.20);
}
.site-pane > input[type="color"] {
  height: 44px;
  padding: 5px;
  cursor: pointer;
}
/* 主题外观：色板网格更精致 */
.site-pane .theme-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 14px;
  margin-top: 8px;
}
.site-pane .theme-grid > div {
  background: rgba(29,26,43,0.40);
  border: 1px solid rgba(255,143,199,0.18);
  border-radius: 12px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.site-pane .theme-grid label {
  margin: 0;
  color: var(--text-2);
  font-size: 15px;
}
/* 功能块卡片化（支付 / 微信登录配置 / 轮播项 / 客服行） */
.site-pane .pay-block,
.site-pane .car-item,
.site-pane .wechat-login-config {
  background: rgba(29,26,43,0.36);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,143,199,0.22);
  border-radius: 14px;
  padding: 16px;
  margin-top: 14px;
  transition: border-color .2s, transform .2s, box-shadow .2s;
}
.site-pane .pay-block:hover,
.site-pane .car-item:hover,
.site-pane .wechat-login-config:hover {
  border-color: rgba(255,143,199,0.45);
  box-shadow: 0 8px 22px rgba(124,58,237,.18);
  transform: translateY(-2px);
}
.site-pane .pay-block > label,
.site-pane .wechat-login-config > label { margin-top: 0; }
.site-pane .pay-block input,
.site-pane .wechat-login-config input {
  margin-top: 8px;
}
/* 客服联系方式行 */
.site-pane .sup-cfg-row {
  background: rgba(29,26,43,0.36);
  border: 1px solid rgba(255,143,199,0.20);
  border-radius: 12px;
  padding: 10px 12px;
  transition: border-color .2s, box-shadow .2s;
}
.site-pane .sup-cfg-row:hover {
  border-color: rgba(255,143,199,0.45);
  box-shadow: 0 4px 14px rgba(124,58,237,.15);
}
/* 保存工具栏 cuteGlow 质感 */
.admin-toolbar {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  padding: 16px 18px;
  border-radius: 16px;
  background: rgba(29,26,43,0.40);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255,143,199,0.20);
}
.admin-toolbar .primary-btn {
  background: linear-gradient(135deg, #ff7eb3 0%, #7c5cff 100%);
  border: none;
  color: #fff;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(124,58,237,.32), inset 0 1px 0 rgba(255,255,255,.20);
  transition: transform .15s, box-shadow .15s, filter .15s;
}
.admin-toolbar .primary-btn:hover { transform: translateY(-1px); filter: brightness(1.06); box-shadow: 0 10px 26px rgba(124,58,237,.42); }
.admin-toolbar .primary-btn:active { transform: translateY(0); filter: brightness(.96); }

/* 本轮信息架构与重点页面视觉整理 */
.do-dashboard-stack { display:grid; grid-template-columns:minmax(0,1fr); gap:18px; margin-top:18px; }
.do-dashboard-stack > .do-panel { min-width:0; }
.do-dashboard-stack .do-trend { min-height:280px; }
.do-dashboard-stack .do-funnel { max-width:1000px; margin:0 auto; width:100%; }

.hub-mini-id { flex:0 0 auto; color:var(--text-3); font-size:15px; }
.hub-notepad { height:100%; min-height:180px; display:flex; flex-direction:column; gap:10px; padding:12px; }
.hub-notepad-input { flex:1; width:100%; min-height:120px; resize:none; box-sizing:border-box; padding:12px 14px; color:var(--text); background:rgba(0,0,0,.2); border:1px solid rgba(255,143,199,.22); border-radius:12px; line-height:1.65; font:inherit; }
.hub-notepad-input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(255,126,179,.1); }
.hub-notepad-foot { display:flex; align-items:center; gap:10px; }
.hub-notepad-status { flex:1; min-width:0; color:var(--text-3); font-size:15px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.m-member-id { margin-top:4px; color:var(--text-3); font-size:15px; }
.member-table th:nth-child(1), .member-table td:nth-child(1) { width:4%; }
.member-table th:nth-child(2), .member-table td:nth-child(2) { width:13%; }
.member-table th:nth-child(3), .member-table td:nth-child(3) { width:11%; }
.member-table th:nth-child(4), .member-table td:nth-child(4) { width:10%; }
.member-table th:nth-child(5), .member-table td:nth-child(5) { width:10%; }
.member-table th:nth-child(6), .member-table td:nth-child(6) { width:9%; }
.member-table th:nth-child(7), .member-table td:nth-child(7) { width:12%; }
.member-table th:nth-child(8), .member-table td:nth-child(8) { width:12%; }
.member-table th:nth-child(9), .member-table td:nth-child(9) { width:19%; }

.polish-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:16px; padding:22px 24px; border:1px solid rgba(255,143,199,.22); border-radius:18px; background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(255,126,179,.08)); box-shadow:0 16px 38px rgba(0,0,0,.16); }
.polish-hero h3 { margin:4px 0 6px; font-size:24px; }
.polish-hero p { margin:0; color:var(--text-2); line-height:1.6; }
.polish-kicker { color:#ffb8da; font-weight:700; letter-spacing:.08em; }
.polish-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.polish-kpis > div { padding:15px 18px; border-radius:14px; border:1px solid rgba(255,255,255,.09); background:rgba(16,13,26,.5); }
.polish-kpis span { display:block; color:var(--text-3); margin-bottom:7px; }
.polish-kpis b { font-size:23px; color:var(--text); }
.polish-table-panel { overflow:auto; border:1px solid rgba(255,143,199,.16); border-radius:15px; background:rgba(16,13,26,.48); }
.polish-table-panel .admin-table { margin:0; }
.supplier-table { min-width:1120px; }
.supplier-table td { line-height:1.55; vertical-align:top; }
.supplier-table td small { display:block; margin-top:5px; color:var(--text-3); }
.supplier-specialties { display:block; max-width:240px; white-space:normal; overflow-wrap:anywhere; }
.supplier-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 16px; }
.supplier-form-grid label { display:flex; flex-direction:column; gap:6px; margin:0; color:var(--text-2); }
.supplier-form-grid label > span { font-weight:600; }
.supplier-form-grid .span-2 { grid-column:1 / -1; }
.supplier-form-grid input,.supplier-form-grid select,.supplier-form-grid textarea { width:100%; box-sizing:border-box; margin:0; }

.capacity-detail-head,.capacity-detail-row { display:grid; grid-template-columns:minmax(220px,1.6fr) minmax(150px,.8fr) minmax(100px,.5fr) minmax(130px,.7fr); align-items:center; gap:12px; }
.capacity-detail-head { padding:10px 14px; color:var(--text-3); font-weight:650; border-bottom:1px solid var(--line); background:rgba(0,0,0,.16); }
.capacity-detail-row { padding:13px 14px; border-bottom:1px solid rgba(255,255,255,.06); }
.capacity-detail-row:last-child { border-bottom:0; }
.capacity-detail-row:hover { background:rgba(124,58,237,.07); }
.capacity-detail-row b { text-align:right; }
#adminModule[data-page="capacity"],#adminModule[data-page="files"],#adminModule[data-page="suppliers"],#adminModule[data-page="profile"],#adminModule[data-page="enterprise"],#adminModule[data-page="recycle"],#adminModule[data-page="userInbox"],#adminModule[data-page="userMessages"] { padding:4px; }
#adminModule[data-page="capacity"] > .admin-hint,#adminModule[data-page="files"] > .admin-hint { padding:14px 16px; margin:0 0 14px; border:1px solid rgba(255,143,199,.15); border-radius:12px; background:rgba(124,58,237,.07); }
#adminModule[data-page="capacity"] .admin-cards { gap:14px; }
#adminModule[data-page="capacity"] .admin-card { min-height:110px; border-color:rgba(255,143,199,.17); background:linear-gradient(145deg,rgba(34,28,52,.9),rgba(20,17,31,.8)); }
#adminModule[data-page="capacity"] .admin-panel { padding:0; overflow:hidden; }
#adminModule[data-page="capacity"] .admin-panel-head { padding:16px 18px; margin:0; border-bottom:1px solid var(--line); }
#adminModule[data-page="files"] .file-find-bar { padding:14px; border:1px solid rgba(255,143,199,.16); border-radius:13px; background:rgba(16,13,26,.5); }
#adminModule[data-page="files"] .file-find-table-wrap { max-width:100%; overflow-x:auto; border:1px solid rgba(255,143,199,.16); border-radius:14px; background:rgba(16,13,26,.5); scrollbar-color:rgba(255,126,179,.55) transparent; }
#adminModule[data-page="files"] .file-find-table { min-width:1100px; border-radius:0; }
#adminModule[data-page="profile"] .admin-panel,#adminModule[data-page="enterprise"] .admin-panel,#adminModule[data-page="recycle"] .trash-list { border-color:rgba(255,143,199,.16); box-shadow:0 12px 32px rgba(0,0,0,.12); }
#adminModule[data-page="profile"] .admin-panel { padding:22px; }
#adminModule[data-page="profile"] .sec-title { padding-bottom:12px; border-bottom:1px solid var(--line); }
#adminModule[data-page="userInbox"] > .admin-toolbar,#adminModule[data-page="userMessages"] .um-send-form { padding:16px; border:1px solid rgba(255,143,199,.16); border-radius:14px; background:rgba(16,13,26,.5); }
#adminModule[data-page="userMessages"] .um-send-form { max-width:none; }
.um-inbox-wrap { padding:18px; }
.um-msg { padding:15px 16px; margin-bottom:10px; border-color:rgba(255,255,255,.1); transition:transform .15s,border-color .15s; }
.um-msg:hover { transform:translateY(-1px); border-color:rgba(255,143,199,.28); }
.um-msg-body { margin:10px 0; }
.trash-head-row,.trash-row { display:grid !important; grid-template-columns:minmax(220px,1fr) minmax(140px,.55fr) 150px 120px 190px; gap:10px; align-items:center; }
.trash-head-row .tr-name,.trash-row .tr-name,.trash-head-row .tr-id,.trash-row .tr-id,.trash-head-row .tr-date,.trash-row .tr-date,.trash-head-row .tr-by,.trash-row .tr-by,.trash-head-row .tr-ops,.trash-row .tr-ops { width:auto !important; }
.gs-project-id { color:var(--text-3); font-family:ui-monospace,Menlo,Consolas,monospace; white-space:nowrap; }
@media (max-width:900px) {
  .polish-hero { align-items:flex-start; flex-direction:column; }
  .polish-kpis { grid-template-columns:1fr; }
  .supplier-form-grid { grid-template-columns:1fr; }
  .supplier-form-grid .span-2 { grid-column:auto; }
  .capacity-detail-head,.capacity-detail-row { grid-template-columns:1fr 1fr; }
  .trash-head-row,.trash-row { grid-template-columns:1fr; }
}

/* 2026-08-24 追加反馈：分条记事簿 */
.hub-notepad-v2 { display:flex; flex-direction:column; gap:14px; height:100%; min-height:300px; padding:12px; overflow:auto; }
.note-notepad-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:2px 0; }
.note-notepad-head > span { color:var(--text-3); font-size:15px; }
.note-add-btn { min-width:110px; }
.note-compose { position:relative; overflow:hidden; flex:0 0 auto; border:1px solid color-mix(in srgb,var(--note-color) 56%,transparent); border-radius:14px; background:rgba(14,13,19,.84); box-shadow:0 12px 28px rgba(0,0,0,.18); }
.note-compose::before { content:""; position:absolute; inset:0 auto 0 0; width:6px; background:var(--note-color); }
.note-compose-top { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:11px 14px 8px 20px; color:var(--text); }
.note-compose-top strong { font-size:16px; }
.note-compose-top span { color:var(--text-3); font-size:15px; }
.note-compose-input { width:calc(100% - 26px); min-height:108px; margin:0 12px 8px 14px; padding:12px 14px; box-sizing:border-box; resize:vertical; border:0; border-radius:8px; outline:none; background:rgba(255,255,255,.045); color:var(--text); font:inherit; font-size:15px; line-height:1.65; }
.note-compose-input:focus { box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--note-color) 65%,transparent); }
.note-compose-input.is-bold { font-weight:750; }
.note-toolbar { display:flex; align-items:center; gap:8px; padding:8px 12px 10px 18px; border-top:1px solid rgba(255,255,255,.07); }
.note-tool-btn,.note-icon-btn { display:inline-flex; align-items:center; justify-content:center; min-height:30px; border:1px solid rgba(255,255,255,.12); border-radius:8px; background:rgba(255,255,255,.04); color:var(--text-2); cursor:pointer; font-size:15px; }
.note-tool-btn { width:30px; padding:0; }
.note-icon-btn { width:auto; padding:4px 9px; gap:5px; white-space:nowrap; }
.note-tool-btn:hover,.note-icon-btn:hover,.note-tool-btn.on,.note-icon-btn.on { color:#fff; border-color:var(--note-color,var(--accent)); background:color-mix(in srgb,var(--note-color,var(--accent)) 18%,transparent); }
.note-icon-btn.danger:hover { border-color:var(--danger); color:#ff8c88; background:rgba(239,68,68,.12); }
.note-color-picker { display:flex; align-items:center; gap:5px; }
.note-color-dot { width:20px; height:20px; padding:0; border:2px solid transparent; border-radius:50%; background:var(--note-color); cursor:pointer; box-shadow:0 0 0 1px rgba(255,255,255,.14); }
.note-color-dot.on { border-color:#fff; transform:scale(1.08); }
.note-private-tip { margin-left:auto; color:var(--text-3); font-size:15px; }
.note-entry-list { display:flex; flex-direction:column; gap:10px; }
.note-entry { position:relative; display:grid; grid-template-columns:7px minmax(0,1fr); min-height:94px; overflow:hidden; border:1px solid rgba(255,255,255,.09); border-radius:12px; background:rgba(15,14,20,.76); transition:border-color .15s,transform .15s,box-shadow .2s,background .2s; }
.note-entry:hover { transform:translateY(-1px); border-color:color-mix(in srgb,var(--note-color) 50%,rgba(255,255,255,.12)); }
.note-entry-mark { background:var(--note-color); }
.note-entry-main { min-width:0; padding:13px 14px 8px; }
.note-entry-text { color:var(--text); font-size:var(--note-font-size,15px); line-height:1.65; white-space:normal; overflow-wrap:anywhere; }
.note-entry.is-bold .note-entry-text { font-weight:750; }
.note-entry.is-italic .note-entry-text { font-style:italic; }
.note-entry.is-strike .note-entry-text { text-decoration:line-through; }
.note-entry-editor { width:100%; min-height:96px; box-sizing:border-box; resize:vertical; border:1px solid color-mix(in srgb,var(--note-color) 55%,transparent); border-radius:8px; background:rgba(255,255,255,.05); color:var(--text); padding:10px; font:inherit; font-size:15px; line-height:1.6; }
.note-thumbnail-wrap { position:relative; width:max-content; max-width:100%; margin-top:10px; padding:5px; border:1px solid rgba(255,255,255,.1); border-radius:10px; background:rgba(0,0,0,.22); }
.note-thumbnail { display:block; width:180px; max-width:100%; height:110px; border-radius:7px; object-fit:cover; }
.note-thumbnail-remove { position:absolute; top:8px; right:8px; width:25px; height:25px; padding:0; border:1px solid rgba(255,255,255,.3); border-radius:50%; background:rgba(12,10,18,.86); color:#fff; cursor:pointer; font-size:17px; }
.note-rich-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:10px; padding:8px; border:1px solid rgba(255,255,255,.08); border-radius:9px; background:rgba(255,255,255,.035); }
.note-font-size-label { display:inline-flex; align-items:center; gap:5px; height:30px; padding:0 6px; border:1px solid rgba(255,255,255,.12); border-radius:8px; color:var(--text-2); font-size:15px; }
.note-font-size-label select { border:0; outline:0; background:transparent; color:var(--text); font:inherit; font-size:15px; }
.note-font-size-label option { background:var(--bg-3); }
.note-paste-hint { min-height:30px; padding:4px 9px; border:1px dashed rgba(161,121,255,.38); border-radius:8px; background:rgba(124,58,237,.08); color:var(--text-2); cursor:pointer; font:inherit; font-size:15px; }
.note-paste-hint:hover { border-color:var(--accent); color:#fff; }
.note-paste-hint-text { color:var(--text-3); font-size:15px; }
.note-reminder-draft { flex:1 1 180px; min-width:0; color:var(--text-3); font-size:15px; text-align:right; overflow-wrap:anywhere; }
.note-reminder-line { display:flex; margin-top:8px; }
.note-entry-foot { display:flex; align-items:center; justify-content:space-between; gap:6px; margin-top:8px; color:var(--text-3); font-size:15px; }
.note-entry-meta { display:flex; align-items:center; min-width:0; white-space:nowrap; font-variant-numeric:tabular-nums; }
.note-entry-actions { display:flex; align-items:center; justify-content:flex-end; gap:3px; flex:0 0 auto; }
.note-entry-actions .note-icon-btn { width:24px; height:24px; min-height:24px; padding:0; gap:0; border-color:transparent; background:transparent; font-size:15px; }
.note-entry-actions .note-icon-btn:hover { border-color:var(--note-color,var(--accent)); background:color-mix(in srgb,var(--note-color,var(--accent)) 16%,transparent); }
.note-reminder-badge { display:inline-flex; align-items:center; max-width:100%; padding:2px 7px; border:1px solid rgba(245,158,11,.3); border-radius:999px; background:rgba(245,158,11,.08); color:#ffd18a; white-space:nowrap; }
.note-reminder-badge.active { border-color:#ff6b8b; background:rgba(255,76,124,.18); color:#fff; font-weight:700; }
@keyframes note-reminder-glow {
  0%,100% { border-color:#ff4f87; box-shadow:0 0 8px rgba(255,79,135,.55),0 0 24px rgba(255,79,135,.26); background:rgba(66,18,42,.88); }
  33% { border-color:#ffd166; box-shadow:0 0 12px rgba(255,209,102,.7),0 0 30px rgba(255,209,102,.3); background:rgba(62,45,16,.88); }
  66% { border-color:#a179ff; box-shadow:0 0 12px rgba(161,121,255,.72),0 0 30px rgba(161,121,255,.3); background:rgba(38,25,67,.9); }
}
.note-entry.reminder-active { animation:note-reminder-glow 1.8s ease-in-out infinite; }
.note-entry.reminder-active .note-entry-mark { background:linear-gradient(180deg,#ff4f87,#ffd166,#a179ff); }
.note-reminder-dialog { width:min(620px,86vw); }
.note-reminder-dialog h3 { margin:0 0 8px; }
.note-reminder-dialog > p { margin:0 0 16px; color:var(--text-2); line-height:1.65; }
.note-reminder-field { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:center; gap:10px; margin:10px 0; }
.note-reminder-field > span { color:var(--text-2); font-weight:650; }
.note-reminder-field .filter-select,.note-reminder-field .np-form-input { width:100%; box-sizing:border-box; }
.note-reminder-custom { display:grid; grid-template-columns:minmax(0,1fr) 120px; gap:8px; margin:8px 0 12px 100px; }
.note-reminder-custom input,.note-reminder-custom select { width:100%; box-sizing:border-box; }
.note-reminder-method { display:flex; align-items:center; gap:11px; margin-top:14px; padding:12px 13px; border:1px solid rgba(255,143,199,.18); border-radius:10px; background:rgba(124,58,237,.08); }
.note-reminder-method > span { font-size:24px; }
.note-reminder-method b,.note-reminder-method small { display:block; }
.note-reminder-method small { margin-top:3px; color:var(--text-3); font-size:15px; }
.note-reminder-dialog .modal-actions { margin-top:18px; }
.note-empty { padding:30px 18px; text-align:center; border:1px dashed rgba(255,255,255,.12); border-radius:12px; color:var(--text-3); }
@media (max-width:620px) {
  .note-entry-foot { align-items:flex-start; }
  .note-entry-meta { flex:1; }
  .note-reminder-field { grid-template-columns:1fr; gap:5px; }
  .note-reminder-custom { margin-left:0; }
}

/* 成员用户 ID：沿用成员名称与辅助信息的中性排版，不做突兀的独立色块 */
.m-member-id { display:flex; align-items:center; gap:7px; margin-top:4px; padding:0; border:0; background:transparent; color:var(--text-3); font-size:15px; }
.m-member-id b { color:var(--text-2); font-weight:600; letter-spacing:.02em; }
.member-id-cell { color:var(--text-2) !important; font-weight:600; letter-spacing:.02em; background:transparent; }
.person-public-id { margin-left:8px; color:var(--text-3); font-size:14px !important; font-weight:400; letter-spacing:0; white-space:nowrap; }

/* 小组管理容量列 */
.project-manage-table-wrap { width:100%; overflow-x:auto; border:1px solid rgba(255,143,199,.16); border-radius:14px; background:rgba(16,13,26,.48); }
.project-manage-table { min-width:1120px; margin:0; }
.project-storage-used { color:#d9c8ff !important; font-weight:700; white-space:nowrap; }

/* 文件查找：改成响应式记录表，无省略、无悬浮显字、无横向挤压 */
.file-find-list { display:flex; flex-direction:column; gap:10px; }
.file-record-card { overflow:hidden; border:1px solid rgba(255,143,199,.16); border-radius:13px; background:rgba(16,13,26,.55); }
.file-record-primary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.07); background:rgba(124,58,237,.06); }
.file-record-name-wrap { display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-width:0; }
.file-record-name,.file-record-link { appearance:none; border:0; padding:0; background:transparent; font:inherit; text-align:left; }
.file-record-name { color:var(--text); font-size:16px; font-weight:700; white-space:normal; overflow-wrap:anywhere; cursor:pointer; }
.file-record-fields { display:grid; grid-template-columns:minmax(150px,1.25fr) minmax(110px,.75fr) minmax(90px,.55fr) minmax(145px,.9fr) minmax(160px,1fr); }
.file-record-field { min-width:0; padding:11px 14px 12px; border-right:1px solid rgba(255,255,255,.06); }
.file-record-field:last-child { border-right:0; }
.file-record-field > span { display:block; margin-bottom:5px; color:var(--text-3); font-size:15px; }
.file-record-field > b,.file-record-field > small { display:block; color:var(--text-2); font-size:15px; font-weight:550; line-height:1.45; white-space:normal; overflow-wrap:anywhere; }
.file-record-field > small { margin-top:3px; color:var(--text-3); }
.file-record-link { color:#c8b1ff; font-size:15px; font-weight:650; white-space:normal; overflow-wrap:anywhere; cursor:pointer; }
.file-record-name:hover,.file-record-link:hover { color:var(--accent); text-decoration:underline; }
.file-find-empty { border:1px dashed rgba(255,255,255,.12); border-radius:13px; }
@media (max-width:1050px) {
  .file-record-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .file-record-field { border-bottom:1px solid rgba(255,255,255,.06); }
}
@media (max-width:620px) {
  .file-record-fields { grid-template-columns:1fr; }
  .file-record-field { border-right:0; }
}

/* 供应商：表格只保留用户指定九类信息，详细字段放入查看/编辑 */
.supplier-table { min-width:1450px; }
.supplier-table th:nth-child(1) { width:130px; }
.supplier-table th:nth-child(2) { width:100px; }
.supplier-table th:nth-child(3) { width:210px; }
.supplier-table th:nth-child(4) { width:100px; }
.supplier-table th:nth-child(5) { width:190px; }
.supplier-table th:nth-child(6) { width:110px; }
.supplier-table th:nth-child(7) { width:165px; }
.supplier-table th:nth-child(8) { width:190px; }
.supplier-table th:nth-child(9) { width:230px; }
.supplier-note-cell { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; line-height:1.5; }
.supplier-row-actions { flex-wrap:nowrap; justify-content:center; }
.supplier-view-head { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding-bottom:15px; border-bottom:1px solid var(--line); }
.supplier-view-head h3 { margin:0; flex:1 1 280px; }
.supplier-view-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
.supplier-view-item { min-width:0; padding:13px 14px; border:1px solid rgba(255,255,255,.09); border-radius:11px; background:rgba(255,255,255,.035); }
.supplier-view-item.span-2 { grid-column:1 / -1; }
.supplier-view-item span { display:block; margin-bottom:6px; color:var(--text-3); font-size:15px; }
.supplier-view-item b { display:block; color:var(--text); font-size:16px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }

/* 企业信息登记：分区表单 */
.enterprise-info-hero { margin-bottom:14px; }
.enterprise-info-state { flex:0 0 auto; padding:7px 13px; border:1px solid rgba(66,200,180,.4); border-radius:999px; color:#6ee7d5; background:rgba(66,200,180,.1); }
.enterprise-form-card { overflow:hidden; border:1px solid rgba(255,143,199,.17); border-radius:16px; background:rgba(16,13,26,.58); }
.enterprise-form-section { display:grid; grid-template-columns:190px minmax(0,1fr); gap:22px; padding:20px; border-bottom:1px solid rgba(255,255,255,.07); }
.enterprise-form-title { display:flex; align-items:flex-start; gap:11px; }
.enterprise-form-title > b { display:flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg,#a179ff,#ff7eb3); color:#fff; }
.enterprise-form-title strong,.enterprise-form-title span { display:block; }
.enterprise-form-title strong { margin-bottom:5px; color:var(--text); font-size:17px; }
.enterprise-form-title span { color:var(--text-3); font-size:15px; line-height:1.5; }
.enterprise-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.enterprise-form-grid label { display:flex; flex-direction:column; gap:6px; margin:0; color:var(--text-2); }
.enterprise-form-grid label > span { font-size:15px; font-weight:650; }
.enterprise-form-grid .span-2 { grid-column:1 / -1; }
.enterprise-form-grid input { width:100%; min-height:42px; box-sizing:border-box; margin:0; padding:10px 12px; border:1px solid rgba(255,255,255,.12); border-radius:9px; outline:none; background:rgba(10,9,16,.72); color:var(--text); font:inherit; font-size:15px; }
.enterprise-form-grid input::placeholder { color:var(--text-3); }
.enterprise-form-grid input:focus { border-color:rgba(255,126,179,.58); box-shadow:0 0 0 3px rgba(255,126,179,.1); }
.enterprise-form-error { padding:0 20px; }
.enterprise-form-actions { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 20px; }
.enterprise-form-actions > span { color:var(--text-3); font-size:15px; }
.enterprise-form-actions > div { display:flex; gap:10px; }

/* 订单、风险、安全告警、操作日志的统一后台视觉 */
.boss-page-polish { display:flex; flex-direction:column; gap:14px; }
.boss-page-polish .polish-hero { margin-bottom:0; }
.boss-compact-hero { min-height:92px; padding:18px 20px; }
.boss-compact-hero h3 { font-size:23px; }
.boss-page-polish .polish-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); margin-bottom:0; }
.boss-page-polish .polish-kpis > div { min-height:78px; }
.boss-page-polish .polish-kpis b { font-size:22px; }
.boss-table-note,.boss-filter-panel { padding:12px 14px; border:1px solid rgba(255,143,199,.14); border-radius:12px; background:rgba(124,58,237,.07); color:var(--text-2); line-height:1.55; }
.boss-filter-panel { display:flex; align-items:center; gap:12px; background:rgba(16,13,26,.5); }
.boss-filter-panel .search-input { flex:1; min-width:220px; }
.boss-filter-panel > span { color:var(--text-3); font-size:15px; }
.boss-wide-table { max-width:100%; overflow-x:auto; }
.order-review-table { min-width:1360px; }
.risk-apply-table,#bossView .risk-apply-table { width:1400px !important; min-width:1400px !important; max-width:1400px !important; table-layout:fixed; }
.risk-apply-table th:nth-child(1) { width:100px; }
.risk-apply-table th:nth-child(2) { width:190px; }
.risk-apply-table th:nth-child(3) { width:110px; }
.risk-apply-table th:nth-child(4) { width:210px; }
.risk-apply-table th:nth-child(5) { width:120px; }
.risk-apply-table th:nth-child(6) { width:240px; }
.risk-apply-table th:nth-child(7) { width:160px; }
.risk-apply-table th:nth-child(8) { width:150px; }
.risk-apply-table th:nth-child(9) { width:120px; }
.risk-apply-table th,.risk-apply-table td { padding:6px 8px !important; line-height:1.35; }
.risk-apply-table .risk-project-name > div,
.risk-apply-table .risk-request-reason > div { display:-webkit-box; max-width:300px; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; overflow-wrap:anywhere; line-height:1.35; }
.risk-apply-table td:nth-child(2),.risk-apply-table td:nth-child(3),.risk-apply-table td:nth-child(5),.risk-apply-table td:nth-child(7),.risk-apply-table td:nth-child(8),.risk-apply-table td:nth-child(9) { white-space:nowrap !important; }
.risk-apply-table td:nth-child(8) small { display:block; margin-top:4px; white-space:nowrap; }
.risk-apply-table .row-actions { gap:5px; flex-wrap:nowrap; white-space:nowrap; }
.boss-log-panel { overflow:hidden; border:1px solid rgba(255,143,199,.16); border-radius:14px; background:rgba(16,13,26,.5); }
.boss-log-head,.boss-log-panel .admin-log-row { display:grid; grid-template-columns:170px 140px 150px minmax(280px,1fr); gap:12px; align-items:center; }
.boss-log-head { padding:11px 14px; color:var(--text-3); font-weight:700; border-bottom:1px solid var(--line); background:rgba(0,0,0,.18); }
.boss-log-panel .admin-log-list { max-height:620px; overflow:auto; }
.boss-log-panel .admin-log-row { padding:12px 14px; border-bottom:1px solid rgba(255,255,255,.06); }
.boss-log-panel .admin-log-row:last-child { border-bottom:0; }
.boss-log-panel .admin-log-row:hover { background:rgba(124,58,237,.07); }
.boss-log-panel .log-action { display:inline-flex; width:max-content; max-width:100%; padding:3px 8px; border-radius:999px; color:#e5d8ff; background:rgba(124,58,237,.16); overflow-wrap:anywhere; }
.boss-log-panel .log-detail { min-width:0; white-space:normal; overflow-wrap:anywhere; line-height:1.55; }
.polished-alerts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.polished-alerts .risk-alert { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; align-items:start; margin:0; padding:16px; border:1px solid rgba(255,255,255,.09); border-radius:14px; background:rgba(16,13,26,.55); }
.polished-alerts .risk-alert-meta { grid-column:2; margin:0; padding-top:8px; border-top:1px solid rgba(255,255,255,.06); color:var(--text-3); }
.polished-alerts .risk-alert-title { font-size:17px; font-weight:750; }
.polished-alerts .risk-alert-detail { margin-top:6px; color:var(--text-2); line-height:1.6; }
@media (max-width:900px) {
  .supplier-view-grid,.enterprise-form-grid { grid-template-columns:1fr; }
  .supplier-view-item.span-2,.enterprise-form-grid .span-2 { grid-column:auto; }
  .enterprise-form-section { grid-template-columns:1fr; }
  .enterprise-form-actions { align-items:flex-start; flex-direction:column; }
  .boss-page-polish .polish-kpis,.polished-alerts { grid-template-columns:1fr 1fr; }
  .boss-log-head,.boss-log-panel .admin-log-row { grid-template-columns:1fr; gap:5px; }
}

/* R19：全站数据表固定在内容区内。长内容统一省略，点击单元格用小耳朵弹窗看全文。 */
#adminView, #bossView, #projectHub, #projectWorkspace { max-width:100%; overflow-x:hidden!important; }
#adminView table, #bossView table, #projectHub table, #projectWorkspace table,
.admin-table, .boss-table, .media-table, .file-find-table,
.supplier-table, .project-manage-table, .order-review-table, .risk-apply-table {
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
}
#adminView table col, #bossView table col, #projectHub table col, #projectWorkspace table col { width:auto!important; min-width:0!important; }
.polish-table-panel, .boss-wide-table, .member-table-wrap, .file-find-table-wrap,
.project-manage-table-wrap, .ra-episode-table-wrap, .table-wrap,
#adminView [style*="overflow-x:auto"], #bossView [style*="overflow-x:auto"] {
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}
#adminView th, #adminView td, #bossView th, #bossView td, #projectHub th, #projectHub td,
#projectWorkspace .media-table th, #projectWorkspace .media-table td {
  min-width:0!important;
  max-width:none!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap;
  box-sizing:border-box;
}
#adminView td:not(.row-actions), #bossView td:not(.row-actions), #projectWorkspace .media-table td { cursor:pointer; }
#adminView .row-actions, #bossView .row-actions,
#adminView td:last-child, #bossView td:last-child {
  display:table-cell!important;
  width:144px!important;
  min-width:0!important;
  max-width:144px!important;
  white-space:normal!important;
  overflow:hidden!important;
}
#adminView td:last-child button, #bossView td:last-child button,
#adminView td:last-child a, #bossView td:last-child a {
  max-width:100%;
  margin:2px 2px 2px 0;
  white-space:normal;
  line-height:1.2;
}
/* 财务运营的操作只有一两个按钮，不再占一大片空列。 */
.order-review-table th:last-child, .order-review-table td:last-child,
.invoice-review-table th:last-child, .invoice-review-table td:last-child,
#bossView table:has([data-handle]) th:last-child, #bossView table:has([data-handle]) td:last-child {
  width:116px!important;
  max-width:116px!important;
}
.risk-apply-table { width:100%!important; min-width:0!important; max-width:100%!important; }
.risk-apply-table .risk-request-reason { white-space:normal!important; overflow-wrap:anywhere; line-height:1.45; }
.cell-clip, .cell-clip.open { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.col-resizer { display:none!important; }
#assetPageBar { padding:0 2px 12px; }
/* 解锁更多页：全屏半透明黑色渐变遮罩，随滚动浮现；顶部全透明，约 1000px 高度起渐变至半透明黑，越往下越浓 */
#buyPlanView { isolation: isolate; }          /* 独立层叠上下文，保证 背景<黑遮罩<内容 层级稳定 */
#buyPlanContent { position: relative; z-index: 2; }
.bp-scroll-shade {
  position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 1000px, rgba(0,0,0,0.6) 100%);
  transition: opacity .15s linear;
}

/* 2026-08-25 本轮范围修复：仅覆盖指定页面，不改其他模块。 */
.bp-scroll-shade {
  opacity:1;
  background:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 30%,rgba(0,0,0,.12) 48%,rgba(0,0,0,.38) 72%,rgba(0,0,0,.68) 100%);
}

/* 风控四表：窄星标/类型列，操作按钮始终保持同一行。 */
#bossView .risk-console-table { width:100%!important; min-width:0!important; max-width:100%!important; table-layout:fixed!important; }
#bossView .risk-console-table th,#bossView .risk-console-table td { padding:8px 7px!important; min-width:0!important; overflow:hidden!important; text-overflow:ellipsis; }
#bossView .risk-console-table th:first-child,#bossView .risk-console-table td:first-child { width:58px!important; max-width:58px!important; text-align:center; }
#bossView .risk-audit-table th:nth-child(2),#bossView .risk-audit-table td:nth-child(2) { width:64px!important; max-width:64px!important; text-align:center; }
#bossView .risk-audit-table th:nth-child(5),#bossView .risk-audit-table td:nth-child(5) { width:82px!important; }
#bossView .risk-audit-table th:nth-child(6),#bossView .risk-audit-table td:nth-child(6) { width:96px!important; }
#bossView .risk-audit-table th:nth-child(7),#bossView .risk-audit-table td:nth-child(7) { width:148px!important; }
#bossView .risk-audit-table th:last-child,#bossView .risk-audit-table td:last-child { width:286px!important; max-width:286px!important; }
#bossView .risk-users-table th:nth-child(4),#bossView .risk-users-table td:nth-child(4) { width:108px!important; }
#bossView .risk-users-table th:nth-child(5),#bossView .risk-users-table td:nth-child(5),
#bossView .risk-users-table th:nth-child(6),#bossView .risk-users-table td:nth-child(6) { width:82px!important; }
#bossView .risk-users-table th:nth-child(7),#bossView .risk-users-table td:nth-child(7) { width:146px!important; }
#bossView .risk-users-table th:last-child,#bossView .risk-users-table td:last-child { width:304px!important; max-width:304px!important; }
#bossView .risk-groups-table th:nth-child(3),#bossView .risk-groups-table td:nth-child(3) { width:112px!important; }
#bossView .risk-groups-table th:nth-child(5),#bossView .risk-groups-table td:nth-child(5) { width:90px!important; }
#bossView .risk-groups-table th:nth-child(6),#bossView .risk-groups-table td:nth-child(6) { width:148px!important; }
#bossView .risk-groups-table th:last-child,#bossView .risk-groups-table td:last-child { width:270px!important; max-width:270px!important; }
#bossView .risk-files-table th:nth-child(4),#bossView .risk-files-table td:nth-child(4) { width:110px!important; }
#bossView .risk-files-table th:nth-child(6),#bossView .risk-files-table td:nth-child(6) { width:88px!important; }
#bossView .risk-files-table th:nth-child(7),#bossView .risk-files-table td:nth-child(7) { width:148px!important; }
#bossView .risk-files-table th:last-child,#bossView .risk-files-table td:last-child { width:172px!important; max-width:172px!important; }
#bossView .risk-console-table td.row-actions,#bossView .risk-console-table td:last-child { display:table-cell!important; white-space:nowrap!important; overflow:hidden!important; }
#bossView .risk-console-table td:last-child button { display:inline-flex!important; width:auto!important; max-width:none!important; margin:0 3px 0 0!important; white-space:nowrap!important; }

/* 四类风控表使用百分比列宽，窄列不占空位，操作按钮压紧并保持一行。 */
#bossView .risk-console-table th,
#bossView .risk-console-table td { width:auto!important; max-width:none!important; }
#bossView .risk-console-table td:last-child button {
  min-width:0!important;
  padding:3px 3px!important;
  margin-right:1px!important;
  line-height:1.15!important;
}
#bossView .risk-audit-table th:nth-child(1) { width:8%!important; }
#bossView .risk-audit-table th:nth-child(2) { width:8%!important; }
#bossView .risk-audit-table th:nth-child(3) { width:10%!important; }
#bossView .risk-audit-table th:nth-child(4) { width:10%!important; }
#bossView .risk-audit-table th:nth-child(5) { width:9%!important; }
#bossView .risk-audit-table th:nth-child(6) { width:10%!important; }
#bossView .risk-audit-table th:nth-child(7) { width:15%!important; }
#bossView .risk-audit-table th:nth-child(8) { width:30%!important; }
#bossView .risk-groups-table th:nth-child(1) { width:8%!important; }
#bossView .risk-groups-table th:nth-child(2) { width:14%!important; }
#bossView .risk-groups-table th:nth-child(3) { width:12%!important; }
#bossView .risk-groups-table th:nth-child(4) { width:10%!important; }
#bossView .risk-groups-table th:nth-child(5) { width:10%!important; }
#bossView .risk-groups-table th:nth-child(6) { width:16%!important; }
#bossView .risk-groups-table th:nth-child(7) { width:30%!important; }
#bossView .risk-files-table th:nth-child(1) { width:8%!important; }
#bossView .risk-files-table th:nth-child(2) { width:16%!important; }
#bossView .risk-files-table th:nth-child(3) { width:13%!important; }
#bossView .risk-files-table th:nth-child(4) { width:11%!important; }
#bossView .risk-files-table th:nth-child(5) { width:10%!important; }
#bossView .risk-files-table th:nth-child(6) { width:9%!important; }
#bossView .risk-files-table th:nth-child(7) { width:16%!important; }
#bossView .risk-files-table th:nth-child(8) { width:17%!important; }
#bossView .risk-users-table th:nth-child(1) { width:8%!important; }
#bossView .risk-users-table th:nth-child(2) { width:10%!important; }
#bossView .risk-users-table th:nth-child(3) { width:12%!important; }
#bossView .risk-users-table th:nth-child(4) { width:10%!important; }
#bossView .risk-users-table th:nth-child(5) { width:8%!important; }
#bossView .risk-users-table th:nth-child(6) { width:8%!important; }
#bossView .risk-users-table th:nth-child(7) { width:14%!important; }
#bossView .risk-users-table th:nth-child(8) { width:30%!important; }

/* 风险管理申请表：移除邮箱后的八列完整收进内容区。 */
#bossView .risk-apply-table { width:100%!important; min-width:0!important; max-width:100%!important; table-layout:fixed!important; }
#bossView .risk-apply-table th:nth-child(1) { width:92px!important; }
#bossView .risk-apply-table th:nth-child(2) { width:108px!important; }
#bossView .risk-apply-table th:nth-child(3) { width:16%!important; }
#bossView .risk-apply-table th:nth-child(4) { width:108px!important; }
#bossView .risk-apply-table th:nth-child(6) { width:148px!important; }
#bossView .risk-apply-table th:nth-child(7) { width:104px!important; }
#bossView .risk-apply-table th:nth-child(8),#bossView .risk-apply-table td:nth-child(8) { width:116px!important; max-width:116px!important; white-space:nowrap!important; }
#bossView .risk-apply-table td:nth-child(5) { white-space:normal!important; overflow-wrap:anywhere; }
#bossView .boss-wide-table { overflow-x:hidden!important; }

/* 风险管理在同时展开站点侧栏与后台侧栏时仍完整收进可视区。 */
#bossView .risk-apply-table th,
#bossView .risk-apply-table td {
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  padding:7px 3px!important;
  white-space:normal!important;
  overflow:hidden!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
  text-overflow:ellipsis;
}
#bossView .risk-apply-table th:nth-child(1) { width:11%!important; }
#bossView .risk-apply-table th:nth-child(2) { width:12%!important; }
#bossView .risk-apply-table th:nth-child(3) { width:16%!important; }
#bossView .risk-apply-table th:nth-child(4) { width:12%!important; }
#bossView .risk-apply-table th:nth-child(5) { width:18%!important; }
#bossView .risk-apply-table th:nth-child(6) { width:14%!important; }
#bossView .risk-apply-table th:nth-child(7) { width:10%!important; }
#bossView .risk-apply-table th:nth-child(8),
#bossView .risk-apply-table td:nth-child(8) { width:7%!important; }
#bossView .risk-apply-table td:nth-child(7) small { white-space:normal!important; }

/* 供应商列表固定八列，最近合作时间只保留在查看/编辑弹窗。 */
.supplier-table-panel { width:100%; max-width:100%; overflow-x:hidden!important; }
#adminView .supplier-table { width:100%!important; min-width:0!important; max-width:100%!important; table-layout:fixed!important; }
#adminView .supplier-table th:nth-child(1) { width:13%; }
#adminView .supplier-table th:nth-child(2) { width:10%; }
#adminView .supplier-table th:nth-child(3) { width:16%; }
#adminView .supplier-table th:nth-child(4) { width:9%; }
#adminView .supplier-table th:nth-child(5) { width:18%; }
#adminView .supplier-table th:nth-child(6) { width:10%; }
#adminView .supplier-table th:nth-child(7) { width:auto; }
#adminView .supplier-table th:nth-child(8),#adminView .supplier-table td:nth-child(8) { width:168px!important; max-width:168px!important; white-space:nowrap!important; }
#adminView .supplier-table td { min-width:0!important; overflow:hidden!important; text-overflow:ellipsis; }
#adminView .supplier-table .supplier-row-actions { display:flex; flex-wrap:nowrap; gap:4px; }
#adminView .supplier-table .supplier-row-actions button { min-width:0; padding-left:8px; padding-right:8px; white-space:nowrap; }

/* 利润录入：左侧表单与顶部三项同宽，收支栏不再挤压右侧利润栏。 */
.profit-entry { width:100%; display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:16px; align-items:stretch; }
.profit-form { width:100%; min-width:0; }
.profit-basic { width:100%; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(150px,.8fr) minmax(150px,.8fr); gap:10px; }
.profit-basic .pf-input { width:100%; min-width:0; box-sizing:border-box; }
.profit-cols { width:100%; min-width:0; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.profit-col,.profit-row,.pr-line1,.pr-line2 { min-width:0; }
.profit-row .pr-total-in,.profit-row .pr-unit-in,.profit-row .pr-qty-in { width:74px; min-width:0; }
.profit-side { width:270px; min-width:0; flex:none; }
@media (max-width:980px) { .profit-entry { grid-template-columns:1fr; } .profit-side { width:100%; } }
@media (max-width:720px) { .profit-basic,.profit-cols { grid-template-columns:1fr; } }

/* 本轮紧凑操作列：所有操作保持单行，前置信息列让出宽度。 */
.member-table { table-layout:fixed!important; }
.member-table th:nth-child(1),.member-table td:nth-child(1){width:5%!important}
.member-table th:nth-child(2),.member-table td:nth-child(2){width:12%!important}
.member-table th:nth-child(3),.member-table td:nth-child(3){width:10%!important}
.member-table th:nth-child(4),.member-table td:nth-child(4){width:8%!important}
.member-table th:nth-child(5),.member-table td:nth-child(5){width:8%!important}
.member-table th:nth-child(6),.member-table td:nth-child(6){width:8%!important}
.member-table th:nth-child(7),.member-table td:nth-child(7){width:12%!important}
.member-table th:nth-child(8),.member-table td:nth-child(8){width:12%!important}
.member-table th:nth-child(9),.member-table td:nth-child(9){width:25%!important;white-space:nowrap!important}
.member-table .mt-ops button,.project-manage-table .row-btns button,.supplier-table .supplier-row-actions button{min-width:0!important;padding:3px 5px!important;margin:0 2px 0 0!important;white-space:nowrap!important}
.project-manage-table{table-layout:fixed!important}
.project-manage-table th:nth-child(2){width:14%!important}.project-manage-table th:nth-child(3){width:11%!important}.project-manage-table th:nth-child(4){width:7%!important}.project-manage-table th:nth-child(5){width:9%!important}.project-manage-table th:nth-child(6){width:10%!important}.project-manage-table th:nth-child(7){width:7%!important}.project-manage-table th:nth-child(8){width:13%!important}.project-manage-table th:nth-child(9),.project-manage-table td:nth-child(9){width:29%!important;white-space:nowrap!important;overflow:hidden!important}
#adminView .supplier-table th:nth-child(1){width:10%!important}#adminView .supplier-table th:nth-child(2){width:9%!important}#adminView .supplier-table th:nth-child(3){width:13%!important}#adminView .supplier-table th:nth-child(4){width:8%!important}#adminView .supplier-table th:nth-child(5){width:14%!important}#adminView .supplier-table th:nth-child(6){width:9%!important}#adminView .supplier-table th:nth-child(7){width:9%!important}#adminView .supplier-table th:nth-child(8),#adminView .supplier-table td:nth-child(8){width:28%!important;max-width:none!important;white-space:nowrap!important}
.profit-entry{grid-template-columns:minmax(0,1fr) 310px!important}.profit-side{width:310px!important}
.upload-tray-head{position:absolute;right:10px;top:10px;z-index:3;display:flex;align-items:center;gap:6px;margin:0}.upload-tray-head span{display:none}.upload-tray-head button{width:28px;height:26px;border:1px solid var(--line);border-radius:7px;background:var(--bg-2);color:var(--text);cursor:pointer}.upload-progress-tray .upload-progress-item:nth-child(2){padding-right:82px}.upload-progress-tray.is-collapsed .upload-progress-item{display:none}.upload-progress-tray.is-collapsed .upload-progress-item:nth-child(2){display:grid;min-height:48px}.upload-progress-tray.is-collapsed .upload-progress-item:nth-child(2)>:not(.upi-name){display:none}

/* 记事簿新增区：一个紧凑加号，新增时同样可设置文字样式和提醒。 */
.note-add-btn { min-width:34px!important; width:34px; height:32px; padding:0!important; font-size:20px; line-height:1; }
.note-compose-input.is-italic { font-style:italic; }
.note-compose-input.is-strike { text-decoration:line-through; }
.note-compose .note-toolbar { flex-wrap:wrap; }
.note-compose .note-reminder-draft { flex:1 1 150px; text-align:left; }

/* 上传进度固定浮层：离开素材网格仍能看到百分比、速度与剩余时间。 */
.upload-progress-tray { position:fixed; right:22px; bottom:22px; z-index:10050; display:flex; flex-direction:column; gap:10px; width:min(390px,calc(100vw - 36px)); pointer-events:none; }
.upload-progress-tray .upload-tray-head{pointer-events:auto}

/* 后台紧凑表格：操作列按按钮总宽度占位，星标/选择列保持极窄且所有操作单行。 */
.member-table,.project-manage-table,#adminView .supplier-table{table-layout:auto!important}
.member-table th:first-child,.member-table td:first-child,.project-manage-table th:first-child,.project-manage-table td:first-child{width:54px!important;max-width:54px!important}
.member-table th:nth-child(4),.member-table td:nth-child(4){width:92px!important}.member-table th:nth-child(6),.member-table td:nth-child(6){width:86px!important}.member-table th:nth-child(7),.member-table td:nth-child(7),.member-table th:nth-child(8),.member-table td:nth-child(8){width:145px!important;white-space:nowrap!important}.member-table th:last-child,.member-table td:last-child{width:1%!important;white-space:nowrap!important}
.project-manage-table th:last-child,.project-manage-table td:last-child,#adminView .supplier-table th:last-child,#adminView .supplier-table td:last-child{width:1%!important;max-width:none!important;white-space:nowrap!important}
#adminView .supplier-table th:nth-child(5),#adminView .supplier-table td:nth-child(5){width:21%!important}#adminView .supplier-table th:nth-child(7),#adminView .supplier-table td:nth-child(7){width:17%!important}
.member-table td:last-child button,.project-manage-table td:last-child button,#adminView .supplier-table td:last-child button{padding:3px 5px!important;margin-right:2px!important;white-space:nowrap!important}

/* 2026-08-25 风控与小组文件列表精修。 */
.dialog-textarea-five {
  width:100%; min-height:132px; resize:vertical; box-sizing:border-box;
  white-space:pre-wrap; line-height:1.55; font-family:inherit;
}
#bossView .risk-apply-table .risk-status-stack {
  display:grid; grid-template-rows:auto auto; justify-items:center; align-items:center;
  gap:4px; width:100%; line-height:1.15;
}
#bossView .risk-apply-table .risk-status-stack .status-pill,
#bossView .risk-apply-table .risk-status-stack small { display:block; white-space:nowrap!important; }

/* 风控四表操作列由 JS 按按钮总宽度精确分配；按钮自身不再保留多余左右空位。 */
#bossView .risk-console-table td:last-child { padding-left:4px!important; padding-right:4px!important; }
#bossView .risk-console-table td:last-child button { margin-right:1px!important; padding-left:3px!important; padding-right:3px!important; }

/* 小组文件列表缩略图固定为统一 72×41，图片、视频首帧和占位图完全一致。 */
#projectWorkspace .media-table .mt-thumb {
  width:72px!important; min-width:72px!important; max-width:72px!important;
  height:41px!important; min-height:41px!important; max-height:41px!important;
  aspect-ratio:auto!important; flex:0 0 72px; object-fit:cover!important;
}

/* 恢复小组文件列表列分割线拖拽；全站其它表格仍保持不可拖拽。 */
#projectWorkspace .media-table thead th { position:relative; }
#projectWorkspace .media-table thead th:not(:last-child) > .col-resizer {
  display:block!important; position:absolute; right:0; top:0; bottom:0; width:10px;
  cursor:col-resize; z-index:4; background:transparent;
}
#projectWorkspace .media-table thead th:not(:last-child) > .col-resizer:hover,
#projectWorkspace .media-table thead th:not(:last-child) > .col-resizer.dragging {
  background:linear-gradient(to bottom,rgba(255,143,199,0),rgba(255,143,199,.8) 22%,rgba(124,58,237,.8) 78%,rgba(124,58,237,0));
}
#bossView .admin-table{table-layout:fixed!important;width:100%!important;max-width:100%!important}
#bossView .admin-table th,#bossView .admin-table td{min-width:0!important;overflow:hidden;text-overflow:ellipsis}
#bossView .admin-table th:last-child,#bossView .admin-table td:last-child{width:1%!important;min-width:92px!important;white-space:nowrap!important;overflow:visible!important}
#bossView .admin-table td:last-child button,#bossView .admin-table td:last-child a{padding:3px 5px!important;margin-right:2px!important;white-space:nowrap!important}
#bossView .risk-console-table th:first-child,#bossView .risk-console-table td:first-child{width:58px!important;max-width:58px!important}
#bossView .risk-console-table th:nth-child(2),#bossView .risk-console-table td:nth-child(2){width:62px!important;max-width:62px!important}
#bossView .risk-console-table th:last-child,#bossView .risk-console-table td:last-child{width:220px!important;max-width:220px!important}
#bossView .risk-files-table th:last-child,#bossView .risk-files-table td:last-child{width:112px!important;max-width:112px!important}
#bossView .risk-apply-table th:last-child,#bossView .risk-apply-table td:last-child{width:86px!important;max-width:86px!important}
#bossView .invoice-review-table th:last-child,#bossView .invoice-review-table td:last-child{width:84px!important;min-width:84px!important}
#bossView .order-review-table th:last-child,#bossView .order-review-table td:last-child{width:92px!important;min-width:92px!important}
.do-kpi-grid-visitor{width:100%!important;grid-template-columns:repeat(3,minmax(0,1fr))!important}
.order-search-bar{display:flex;align-items:center;gap:12px;margin:12px 0}.order-search-bar .search-input{flex:1;min-width:0}.order-search-bar span{white-space:nowrap;color:var(--text-3)}
.message-send-hero{margin-bottom:12px}.message-send-hint{margin:0 0 10px;padding:9px 12px;border-left:3px solid var(--accent);background:rgba(255,126,179,.07);border-radius:8px}.im-compose{padding:18px!important;border-radius:16px!important;background:linear-gradient(145deg,rgba(34,29,52,.92),rgba(19,16,31,.94))!important}.im-compose .im-row{padding:9px 0;margin:0!important;border-bottom:1px solid rgba(255,255,255,.055)}.im-compose .im-row:last-child{border-bottom:0}.im-compose .im-label{width:88px;flex:0 0 88px;text-align:left!important;font-weight:650;color:var(--text)!important}.im-compose .modal-actions{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.upload-progress-tray .upload-progress-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:7px 12px; padding:13px 15px; border:1px solid rgba(255,126,179,.46); border-radius:13px; background:rgba(20,17,31,.96); box-shadow:0 14px 36px rgba(0,0,0,.42); backdrop-filter:blur(14px); }
.upload-progress-tray .upi-name { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700; }
.upload-progress-tray .upi-bar-track { grid-column:1 / -1; height:8px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.1); }
.upload-progress-tray .upi-bar-fill { height:100%; border-radius:inherit; background:linear-gradient(90deg,#ff7eb3,#8b5cf6); transition:width .16s linear; }
.upload-progress-tray .upi-pct { color:#ffd4e8; font-weight:750; }
.upload-progress-tray .upi-speed { grid-column:1 / -1; color:var(--text-3); font-size:15px; }

/* 固定宽度终版：所有列都在内容区内分配，禁止操作列向右撑出。 */
#adminView .member-table,#adminView .project-manage-table,#adminView .supplier-table,#bossView .admin-table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important}
#adminView .member-table-wrap,#adminView .project-manage-table-wrap,#adminView .supplier-table-panel,#bossView .polish-table-panel,#bossView .boss-wide-table{width:100%!important;max-width:100%!important;overflow:hidden!important}
#adminView .member-table th,#adminView .member-table td,#adminView .project-manage-table th,#adminView .project-manage-table td,#adminView .supplier-table th,#adminView .supplier-table td,#bossView .admin-table th,#bossView .admin-table td{min-width:0!important;box-sizing:border-box!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding-left:5px!important;padding-right:5px!important}
#adminView .member-table th:first-child,#adminView .member-table td:first-child,#adminView .project-manage-table th:first-child,#adminView .project-manage-table td:first-child,#bossView #uTable th:first-child,#bossView #uTable td:first-child,#bossView #empTable th:first-child,#bossView #empTable td:first-child{width:44px!important;max-width:44px!important;text-align:center!important}
#adminView .member-table th:nth-child(2){width:12%!important}#adminView .member-table th:nth-child(3){width:10%!important}#adminView .member-table th:nth-child(4){width:10%!important}#adminView .member-table th:nth-child(5){width:8%!important}#adminView .member-table th:nth-child(6){width:9%!important}#adminView .member-table th:nth-child(7){width:13%!important}#adminView .member-table th:nth-child(8){width:13%!important}#adminView .member-table th:nth-child(9),#adminView .member-table td:nth-child(9){width:142px!important}
#adminView .project-manage-table th:nth-child(2){width:14%!important}#adminView .project-manage-table th:nth-child(3){width:11%!important}#adminView .project-manage-table th:nth-child(4){width:7%!important}#adminView .project-manage-table th:nth-child(5){width:9%!important}#adminView .project-manage-table th:nth-child(6){width:9%!important}#adminView .project-manage-table th:nth-child(7){width:7%!important}#adminView .project-manage-table th:nth-child(8){width:13%!important}#adminView .project-manage-table th:nth-child(9),#adminView .project-manage-table td:nth-child(9){width:200px!important}
#adminView .supplier-table th:nth-child(1){width:10%!important}#adminView .supplier-table th:nth-child(2){width:9%!important}#adminView .supplier-table th:nth-child(3){width:13%!important}#adminView .supplier-table th:nth-child(4){width:8%!important}#adminView .supplier-table th:nth-child(5){width:19%!important}#adminView .supplier-table th:nth-child(6){width:9%!important}#adminView .supplier-table th:nth-child(7){width:17%!important}#adminView .supplier-table th:nth-child(8),#adminView .supplier-table td:nth-child(8){width:150px!important;max-width:150px!important}
#adminView table td:last-child,#bossView .admin-table td:last-child{overflow:hidden!important;white-space:nowrap!important}
#adminView table td:last-child button,#bossView .admin-table td:last-child button,#bossView .admin-table td:last-child a{display:inline-flex!important;width:auto!important;min-width:0!important;max-width:none!important;padding:3px 4px!important;margin:0 1px 0 0!important;white-space:nowrap!important}
#bossView #uTable th:nth-child(2){width:90px!important}#bossView #uTable th:nth-child(3){width:100px!important}#bossView #uTable th:nth-child(4){width:140px!important}#bossView #uTable th:nth-child(5){width:92px!important}#bossView #uTable th:nth-child(6){width:112px!important}#bossView #uTable th:nth-child(7){width:112px!important}#bossView #uTable th:nth-child(8){width:100px!important}#bossView #uTable th:nth-child(9){width:82px!important}#bossView #uTable th:nth-child(10){width:120px!important}#bossView #uTable th:last-child,#bossView #uTable td:last-child{width:136px!important;min-width:136px!important}
#bossView #empTable th:last-child,#bossView #empTable td:last-child{width:170px!important;min-width:170px!important}#bossView #trTable th:last-child,#bossView #trTable td:last-child{width:100px!important;min-width:100px!important}#bossView #upFileTable th:last-child,#bossView #upFileTable td:last-child{width:72px!important;min-width:72px!important}
#bossView .invoice-review-table th:last-child,#bossView .invoice-review-table td:last-child{width:82px!important;min-width:82px!important}#bossView .order-review-table th:last-child,#bossView .order-review-table td:last-child{width:92px!important;min-width:92px!important}
#bossView .risk-console-table th:first-child,#bossView .risk-console-table td:first-child{width:52px!important;max-width:52px!important}#bossView .risk-audit-table th:nth-child(2),#bossView .risk-audit-table td:nth-child(2){width:56px!important;max-width:56px!important}
#bossView .risk-console-table th:last-child,#bossView .risk-console-table td:last-child{width:210px!important;max-width:210px!important}#bossView .risk-files-table th:last-child,#bossView .risk-files-table td:last-child{width:108px!important;max-width:108px!important}#bossView .risk-apply-table th:last-child,#bossView .risk-apply-table td:last-child{width:84px!important;max-width:84px!important}
#bossView #trTable th:last-child,#bossView #trTable td:last-child{width:22%!important;min-width:0!important;max-width:none!important;white-space:normal!important;text-overflow:clip!important;line-height:1.45}
#bossView .membership-table-wrap{width:100%;max-width:100%;overflow:hidden}
#bossView .membership-overview-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
#bossView .membership-overview-table th,#bossView .membership-overview-table td{min-width:0!important;max-width:none!important;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important;padding-left:8px!important;padding-right:8px!important}
#bossView .membership-overview-table th:last-child,#bossView .membership-overview-table td:last-child{width:34%!important;min-width:0!important;max-width:none!important;white-space:normal!important;overflow-wrap:anywhere;line-height:1.45}
#bossView .gift-record-table-wrap{width:100%;max-width:100%;overflow:hidden}
#bossView #grTable{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important}
#bossView #grTable th,#bossView #grTable td{min-width:0!important;max-width:none!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding-left:6px!important;padding-right:6px!important}
#bossView #grTable th:last-child,#bossView #grTable td:last-child{width:15%!important;min-width:0!important;max-width:none!important}

/* 全站表格最终边界：所有页面表格始终在可视内容区内按比例分配，禁止历史 min-width / 操作列规则外撑。 */
#adminView .admin-content,#bossView .admin-content,#projectHub,#projectWorkspace,
#adminView .do-panel,#bossView .do-panel,#adminView .polish-table-panel,#bossView .polish-table-panel {
  min-width:0!important; max-width:100%!important; box-sizing:border-box!important;
}
.contained-table-wrap,
#adminView table[data-contained-table="1"],
#bossView table[data-contained-table="1"],
#projectHub table[data-contained-table="1"],
#projectWorkspace table[data-contained-table="1"] {
  width:100%!important; min-width:0!important; max-width:100%!important; box-sizing:border-box!important;
}
.contained-table-wrap { overflow-x:hidden!important; }
#adminView table[data-contained-table="1"],#bossView table[data-contained-table="1"],
#projectHub table[data-contained-table="1"],#projectWorkspace table[data-contained-table="1"] {
  table-layout:fixed!important; overflow:visible!important;
}
#adminView table[data-contained-table="1"] th,#adminView table[data-contained-table="1"] td,
#bossView table[data-contained-table="1"] th,#bossView table[data-contained-table="1"] td,
#projectHub table[data-contained-table="1"] th,#projectHub table[data-contained-table="1"] td,
#projectWorkspace table[data-contained-table="1"] th,#projectWorkspace table[data-contained-table="1"] td {
  min-width:0!important; max-width:none!important; box-sizing:border-box!important;
  overflow:hidden!important; text-overflow:ellipsis!important; white-space:nowrap!important;
}
/* 没有“操作”列的统计表，最后一列不得继承后台操作列的 92px 最小宽度。 */
#bossView table[data-contained-table="1"][data-has-actions="0"] th:last-child,
#bossView table[data-contained-table="1"][data-has-actions="0"] td:last-child,
#adminView table[data-contained-table="1"][data-has-actions="0"] th:last-child,
#adminView table[data-contained-table="1"][data-has-actions="0"] td:last-child {
  min-width:0!important; max-width:none!important; overflow:hidden!important; white-space:nowrap!important;
}

/* 2026-08-25 本轮：风险状态严格两行；风控星标列只占内容宽度。 */
#bossView .risk-apply-table th:nth-child(7),
#bossView .risk-apply-table td:nth-child(7) { min-width:144px!important; }
#bossView .risk-apply-table .risk-status-stack { display:grid!important; grid-template-rows:auto auto!important; gap:4px!important; }
#bossView .risk-apply-table .risk-status-stack > * { display:block!important; white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important; }
#bossView .risk-console-table th:first-child,
#bossView .risk-console-table td:first-child { width:44px!important; max-width:44px!important; padding-left:4px!important; padding-right:4px!important; text-align:center!important; }

/* 批注栏整体字号缩小一级，状态/回复/编辑/删除均用紧凑图标。 */
.comments-panel .ci-meta { font-size:14px!important; }
.comments-panel .ci-text { font-size:15px!important; }
.comments-panel .ci-created,.comments-panel .ci-pushed-from,.comments-panel .ci-reply { font-size:14px!important; }
.comments-panel .ci-actions { gap:4px!important; flex-wrap:nowrap!important; margin-top:6px!important; }
.comments-panel .ci-actions .ci-icon-act {
  display:inline-flex!important; align-items:center!important; justify-content:center!important;
  width:28px!important; min-width:28px!important; height:26px!important; padding:0!important;
  font-size:15px!important; line-height:1!important; border-radius:7px!important;
}

/* 用户名单 · 企业版资源配额。 */
.uv-enterprise-limit-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px 12px; }
.uv-enterprise-limit-grid label { margin:0!important; color:var(--text-2); font-size:15px!important; }
.uv-enterprise-limit-grid input { margin:5px 0 0!important; width:100%; }
.uv-enterprise-limit-actions { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:12px; }
@media (max-width:1100px) { .uv-enterprise-limit-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .uv-enterprise-limit-grid { grid-template-columns:1fr; } .uv-enterprise-limit-actions { align-items:stretch; flex-direction:column; } }

/* 2026-08-25 本轮界面微调。 */
.uv-enterprise-limit-grid input { font-size:16px!important; }
.uv-enterprise-limit-title { display:flex!important; align-items:center; gap:14px; flex-wrap:wrap; }
.uv-enterprise-limit-hint { color:var(--text-3); font-size:inherit; font-weight:400; }
.uv-enterprise-limit-actions { justify-content:flex-end!important; }

/* 批注日期放到操作行右下角，字号再缩小一级。 */
.comments-panel .ci-actions { align-items:center!important; width:100%; }
.comments-panel .ci-actions .ci-created { margin-left:auto; font-size:13px!important; line-height:1; }

/* 解锁更多：前 1000px 完全透明，之后才逐级加深；遮罩跟随整页内容而非固定在视窗。 */
#buyPlanView { position:relative; isolation:isolate; }
#buyPlanView::after { background:none!important; }
#buyPlanContent { position:relative!important; }
#buyPlanContent .bp-content-inner { position:relative; z-index:1; }
.bp-scroll-shade {
  position:absolute!important; top:0!important; right:0!important; bottom:auto!important; left:0!important;
  min-height:100%!important; opacity:1!important; pointer-events:none!important; z-index:0!important;
  background:linear-gradient(to bottom,
    rgba(0,0,0,0) 0,
    rgba(0,0,0,0) 500px,
    rgba(0,0,0,.25) 700px,
    rgba(0,0,0,.50) 900px,
    rgba(0,0,0,.75) 1150px,
    rgba(0,0,0,1) 100%)!important;
}

/* 解锁更多纵向间距重新归一：会员卡→单项加购与单项加购→核心优势保持接近。 */
.bp-section-title:has(+ .bp-addon-row) { margin-top:26px!important; margin-bottom:16px!important; transform:none!important; }
.bp-addon-row { margin-top:0!important; margin-bottom:26px!important; transform:translateY(-70px)!important; }
.bp-addon-row ~ * { transform:translateY(-70px)!important; }
.bp-section-core-advantage { margin-top:26px!important; transform:translateY(-70px)!important; }
.bp-section-faq { margin-top:26px!important; transform:translateY(-70px)!important; }

/* 左侧栏标题比正文导航大一级。 */
.sidebar-home { font-size:16px!important; }

/* 团队概览权益卡：首行 2 等分、次行 4 等分，两行与下方内容同宽。 */
#adminCards { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:stretch; }
#adminCards .admin-card { min-width:0; }
#adminCards .admin-card-wide { grid-column:span 2; }
@media (max-width:900px) {
  #adminCards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  #adminCards { grid-template-columns:minmax(0,1fr); }
  #adminCards .admin-card-wide { grid-column:span 1; }
}

/* 团队概览中部两块严格等高；团队信息用真实数据填满留白。 */
#adminOverview .admin-grid-2 { align-items:stretch; }
#adminOverview .admin-grid-2 > .admin-panel { height:100%; margin-top:0; box-sizing:border-box; }
#adminOverview .admin-team-info { display:flex; flex-direction:column; align-items:stretch; gap:18px; padding:4px 0 0; }
#adminOverview .admin-team-profile { display:flex; align-items:center; gap:16px; }
#adminOverview .admin-team-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:auto; }
#adminOverview .admin-team-stats > div { min-width:0; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:rgba(255,255,255,.025); display:flex; align-items:center; justify-content:space-between; gap:10px; }
#adminOverview .admin-team-stats span { color:var(--text-3); font-size:15px; white-space:nowrap; }
#adminOverview .admin-team-stats b { color:var(--text); font-size:15px; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:700px) {
  #adminOverview .admin-team-stats { grid-template-columns:minmax(0,1fr); }
}

/* 供应商管理：去掉介绍横幅，添加入口与统计项合并为同一行。 */
#adminModule[data-page="suppliers"] .supplier-kpis { grid-template-columns:repeat(4,minmax(0,1fr)); }
#adminModule[data-page="suppliers"] .supplier-add-card { min-width:0; padding:15px 18px; border:1px solid rgba(255,126,179,.35); border-radius:14px; background:linear-gradient(135deg,rgba(255,126,179,.18),rgba(168,85,247,.18)); color:var(--text); text-align:left; cursor:pointer; display:flex; align-items:center; gap:10px; }
#adminModule[data-page="suppliers"] .supplier-add-card > span { width:34px; height:34px; border-radius:10px; background:var(--grad-accent); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:22px; flex:none; }
#adminModule[data-page="suppliers"] .supplier-add-card > b { font-size:17px; white-space:nowrap; }
#adminModule[data-page="suppliers"] .supplier-add-card:hover { border-color:var(--accent); filter:brightness(1.08); }
#adminModule[data-page="suppliers"] .supplier-specialty-kpi { min-width:0; }
#adminModule[data-page="suppliers"] .supplier-specialty-kpi b { display:block; width:100%; font-size:16px; line-height:1.45; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* 后台消息发送直接采用用户中心原版表单模式，仅扩展后台专属收件与附件字段。 */
#bossContent[data-page="messages"] .boss-um-send-form { max-width:none; padding:16px; border:1px solid rgba(255,143,199,.16); border-radius:14px; background:rgba(16,13,26,.5); }
#bossContent[data-page="messages"] .boss-um-send-form .um-send-row { align-items:flex-end; }
#bossContent[data-page="messages"] .boss-um-send-form .um-field { min-width:0; }
#bossContent[data-page="messages"] .boss-field-full { flex-basis:100%; }
#bossContent[data-page="messages"] .boss-send-range .seg { width:100%; max-width:620px; }
#bossContent[data-page="messages"] .boss-preview-btn { flex:none; margin-bottom:1px; }
#bossContent[data-page="messages"] .im-preview { margin:0; }
#bossContent[data-page="messages"] .boss-um-actions { display:flex; justify-content:flex-end; gap:10px; padding-top:2px; }
@media (max-width:900px) {
  #adminModule[data-page="suppliers"] .supplier-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
  #adminModule[data-page="suppliers"] .supplier-kpis { grid-template-columns:minmax(0,1fr); }
  #bossContent[data-page="messages"] .boss-um-send-form .um-send-row { align-items:stretch; flex-direction:column; }
  #bossContent[data-page="messages"] .boss-preview-btn { align-self:flex-end; }
}

/* 后台历史消息：工具栏、元信息、正文和操作分层，减少标签与文字挤在一行。 */
#bossContent[data-page="msgHistory"] .mh-toolbar-card { padding:14px 16px; margin-bottom:14px; border:1px solid rgba(255,143,199,.16); border-radius:14px; background:rgba(16,13,26,.58); }
#bossContent[data-page="msgHistory"] .mh-search-row { display:flex; align-items:center; gap:9px; }
#bossContent[data-page="msgHistory"] .mh-search-box { flex:1; min-width:220px; display:flex; align-items:center; gap:8px; padding:0 11px; border:1px solid var(--line); border-radius:9px; background:var(--bg-3); }
#bossContent[data-page="msgHistory"] .mh-search-box:focus-within { border-color:var(--accent); box-shadow:0 0 0 2px rgba(255,126,179,.1); }
#bossContent[data-page="msgHistory"] .mh-search-box .search-input { width:100%; min-width:0; padding-left:0; border:0!important; background:transparent!important; box-shadow:none!important; }
#bossContent[data-page="msgHistory"] .mh-result-count { margin-left:auto; color:var(--text-3); font-size:15px; white-space:nowrap; }
#bossContent[data-page="msgHistory"] .mh-result-count b { color:var(--accent); }
#bossContent[data-page="msgHistory"] .mh-category-row { display:flex; align-items:flex-start; gap:12px; margin-top:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.06); }
#bossContent[data-page="msgHistory"] .mh-category-label { flex:none; padding-top:7px; color:var(--text-3); font-size:15px; }
#bossContent[data-page="msgHistory"] .mh-category-row .gift-tabs { display:flex; flex-wrap:wrap; gap:7px; margin:0; }
#bossContent[data-page="msgHistory"] .mh-category-row .gift-tab { padding:6px 13px; }
#bossContent[data-page="msgHistory"] .mh-batch-row { display:flex; align-items:center; gap:12px; margin-top:11px; padding-top:11px; border-top:1px solid rgba(255,255,255,.06); }
#bossContent[data-page="msgHistory"] .mh-select-all { display:inline-flex; align-items:center; gap:6px; color:var(--text-2); cursor:pointer; }
#bossContent[data-page="msgHistory"] .mh-select-all input,#bossContent[data-page="msgHistory"] .mh-item-select input { width:17px; height:17px; margin:0; accent-color:var(--accent); cursor:pointer; }
#bossContent[data-page="msgHistory"] .mh-selected-count { color:var(--text-3); font-size:15px; }
#bossContent[data-page="msgHistory"] .mh-selected-count b { color:var(--accent); }
#bossContent[data-page="msgHistory"] .mh-batch-row #mhBatchDelete { margin-left:auto; }
#bossContent[data-page="msgHistory"] .mh-list { display:flex; flex-direction:column; gap:10px; }
#bossContent[data-page="msgHistory"] .mh-card { padding:14px 16px; border:1px solid rgba(255,255,255,.09); border-radius:12px; background:rgba(28,24,45,.82); box-shadow:0 7px 18px rgba(0,0,0,.1); }
#bossContent[data-page="msgHistory"] .mh-card:hover { border-color:rgba(255,126,179,.28); background:rgba(32,27,51,.9); }
#bossContent[data-page="msgHistory"] .mh-card.selected { border-color:rgba(255,126,179,.58); box-shadow:0 0 0 1px rgba(255,126,179,.18),0 7px 18px rgba(0,0,0,.1); }
#bossContent[data-page="msgHistory"] .mh-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
#bossContent[data-page="msgHistory"] .mh-sender { display:flex; align-items:center; gap:10px; min-width:0; }
#bossContent[data-page="msgHistory"] .mh-item-select { display:inline-flex; align-items:center; flex:none; }
#bossContent[data-page="msgHistory"] .mh-sender-avatar { width:34px; height:34px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; flex:none; background:var(--grad-accent); color:#fff; font-weight:700; }
#bossContent[data-page="msgHistory"] .mh-sender > div { min-width:0; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
#bossContent[data-page="msgHistory"] .mh-sender b { color:var(--text); font-size:16px; }
#bossContent[data-page="msgHistory"] .mh-sender time { color:var(--text-3); font-size:14px; }
#bossContent[data-page="msgHistory"] .mh-delete { flex:none; }
#bossContent[data-page="msgHistory"] .mh-meta { display:inline-flex; align-items:center; flex-wrap:wrap; gap:7px; margin:0; }
#bossContent[data-page="msgHistory"] .mh-meta span { padding:3px 9px; border-radius:999px; background:rgba(255,126,179,.13); border:1px solid rgba(255,126,179,.18); color:#f3c4dc; font-size:14px; }
#bossContent[data-page="msgHistory"] .mh-subject { margin:10px 0 7px 71px; padding-bottom:7px; border-bottom:1px solid rgba(255,255,255,.09); font-size:17px; line-height:1.45; color:#ff9dca; }
#bossContent[data-page="msgHistory"] .mh-subject.muted { color:var(--text-3); }
#bossContent[data-page="msgHistory"] .mh-text { margin-left:71px; color:var(--text-2); font-size:15px; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
#bossContent[data-page="msgHistory"] .mh-attachments,#bossContent[data-page="msgHistory"] .mh-links { margin-left:71px; }
#bossContent[data-page="msgHistory"] .mh-pagination { display:flex; justify-content:center; margin-top:14px; }
@media (max-width:700px) {
  #bossContent[data-page="msgHistory"] .mh-search-row { align-items:stretch; flex-wrap:wrap; }
  #bossContent[data-page="msgHistory"] .mh-search-box { flex-basis:100%; }
  #bossContent[data-page="msgHistory"] .mh-result-count { margin-left:0; align-self:center; }
  #bossContent[data-page="msgHistory"] .mh-category-row { flex-direction:column; gap:6px; }
  #bossContent[data-page="msgHistory"] .mh-subject,#bossContent[data-page="msgHistory"] .mh-text,#bossContent[data-page="msgHistory"] .mh-attachments,#bossContent[data-page="msgHistory"] .mh-links { margin-left:0; }
}

/* 后台消息接收与用户消息管理：全选、逐条选择、批量操作统一视觉。 */
#bossContent[data-page="inbox"] .inbox-select-all,#adminModule[data-page="userInbox"] .um-select-all { display:inline-flex; align-items:center; gap:6px; color:var(--text-2); cursor:pointer; white-space:nowrap; }
#bossContent[data-page="inbox"] .inbox-select-all input,#adminModule[data-page="userInbox"] .um-select-all input,#adminModule[data-page="userInbox"] .um-msg-select-box input { width:17px; height:17px; margin:0; accent-color:var(--accent); cursor:pointer; }
#adminModule[data-page="userInbox"] .um-batch-toolbar { display:flex; align-items:center; gap:12px; margin:0 0 12px; padding:10px 12px; border:1px solid rgba(255,255,255,.08); border-radius:10px; background:rgba(255,255,255,.025); }
#adminModule[data-page="userInbox"] .um-selected-count { color:var(--text-3); font-size:15px; }
#adminModule[data-page="userInbox"] .um-selected-count b { color:var(--accent); }
#adminModule[data-page="userInbox"] .um-batch-toolbar #umBatchDelete { margin-left:auto; }
#adminModule[data-page="userInbox"] .um-msg { position:relative; padding-left:46px; }
#adminModule[data-page="userInbox"] .um-msg-select-box { position:absolute; left:14px; top:14px; display:inline-flex; }
#adminModule[data-page="userInbox"] .um-msg.selected { border-color:rgba(255,126,179,.55); box-shadow:0 0 0 1px rgba(255,126,179,.14); }

/* 数据报表集数表：表格总宽固定；制作人固定宽，其余业务列按内容与剩余空间自适应。 */
#wsReports .ra-episode-table-wrap { width:100%!important; max-width:100%!important; overflow-x:hidden!important; }
#wsReports .ra-episode-table-wrap .ra-episode-table { width:100%!important; min-width:0!important; max-width:100%!important; table-layout:auto!important; }
#wsReports .ra-episode-table th,#wsReports .ra-episode-table td { min-width:0!important; max-width:none!important; padding-left:7px!important; padding-right:7px!important; box-sizing:border-box; }
#wsReports .ra-episode-table thead th { white-space:normal!important; overflow:visible!important; text-overflow:clip!important; overflow-wrap:anywhere; line-height:1.35; }
#wsReports .ra-episode-table tbody td { white-space:normal!important; overflow:hidden!important; text-overflow:ellipsis; overflow-wrap:anywhere; }
#wsReports .ra-episode-table .ra-maker-col { width:96px!important; min-width:96px!important; max-width:96px!important; white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important; }
#wsReports .ra-episode-table .ra-exclude-col { width:48px!important; min-width:48px!important; max-width:48px!important; text-align:center; }
#wsReports .ra-episode-table .ra-toggle-col { width:36px!important; min-width:36px!important; max-width:36px!important; padding-left:4px!important; padding-right:4px!important; text-align:center; }

/* 多文件上传共用一个外框，文件进度作为同一面板内的列表显示。 */
.upload-progress-tray { gap:0!important; padding:10px 12px!important; border:1px solid rgba(255,126,179,.46); border-radius:14px; background:rgba(20,17,31,.96); box-shadow:0 14px 36px rgba(0,0,0,.42); backdrop-filter:blur(14px); }
.upload-progress-tray .upload-tray-list { display:flex; flex-direction:column; gap:0; min-width:0; }
.upload-progress-tray .upload-tray-list .upload-progress-item { margin:0!important; padding:12px 3px!important; border:0!important; border-bottom:1px solid rgba(255,255,255,.09)!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; backdrop-filter:none!important; }
.upload-progress-tray .upload-tray-list .upload-progress-item:first-child { padding-right:3px!important; }
.upload-progress-tray .upload-tray-list .upload-progress-item:first-child .upi-name { padding-right:72px; }
.upload-progress-tray .upload-tray-list .upload-progress-item:last-child { border-bottom:0!important; }
.upload-progress-tray.is-collapsed .upload-tray-list .upload-progress-item { display:none!important; }
.upload-progress-tray.is-collapsed .upload-tray-list .upload-progress-item:first-child { display:grid!important; min-height:32px; border-bottom:0!important; }
.upload-progress-tray.is-collapsed .upload-tray-list .upload-progress-item:first-child > :not(.upi-name) { display:none!important; }

/* 上传队列限于可视窗口内：标题和操作按钮固定，只有文件列表滚动。 */
#uploadProgressTray {
  max-height:min(600px, calc(100vh - 96px));
  max-height:min(600px, calc(100dvh - 96px));
  overflow:hidden;
  pointer-events:auto;
}
#uploadProgressTray .upload-tray-head {
  position:static;
  flex:0 0 auto;
  min-height:34px;
  justify-content:flex-end;
  padding-bottom:8px;
  border-bottom:1px solid rgba(255,255,255,.09);
}
#uploadProgressTray .upload-tray-head span {
  display:inline;
  margin-right:auto;
  color:var(--text-2);
  font-size:15px;
  font-weight:700;
}
#uploadProgressTray .upload-tray-list {
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
#uploadProgressTray .upload-tray-list .upload-progress-item { flex:0 0 auto; }
#uploadProgressTray .upload-tray-list .upload-progress-item:first-child .upi-name { padding-right:0; }

/* 数据报表列宽二次校准：前列收紧、交稿时间单行，反馈类单位固定到第二行。 */
#wsReports .ra-episode-table-wrap .ra-episode-table { table-layout:fixed!important; }
#wsReports .ra-episode-table .ra-exclude-col { width:4%!important; min-width:0!important; max-width:none!important; }
#wsReports .ra-episode-table .ra-episode-col { width:7%!important; min-width:0!important; max-width:none!important; }
#wsReports .ra-episode-table .ra-maker-col { width:9%!important; min-width:0!important; max-width:none!important; }
#wsReports .ra-episode-table .ra-progress-col { width:9%!important; }
#wsReports .ra-episode-table .ra-duration-col { width:8%!important; }
#wsReports .ra-episode-table .ra-version-col,#wsReports .ra-episode-table .ra-load-col { width:8%!important; }
#wsReports .ra-episode-table .ra-date-col { width:13%!important; white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important; }
#wsReports .ra-episode-table .ra-total-col { width:7%!important; }
#wsReports .ra-episode-table .ra-rate-col,#wsReports .ra-episode-table .ra-speed-col { width:10%!important; }
#wsReports .ra-episode-table .ra-toggle-col { width:2%!important; min-width:0!important; max-width:none!important; }
#wsReports .ra-episode-table thead .ra-date-col { white-space:nowrap!important; }
#wsReports .ra-episode-table thead .ra-duration-col { white-space:nowrap!important; }
#wsReports .ra-episode-table thead .ra-rate-col,#wsReports .ra-episode-table thead .ra-speed-col { white-space:nowrap!important; }
#wsReports .ra-episode-table .ra-head-unit { display:block; margin-top:2px; white-space:nowrap; font-size:14px; font-weight:600; }

/* 数据报表统一居中；上传面板每条进度轨道保持等宽。 */
#wsReports .ra-episode-table th,
#wsReports .ra-episode-table td { text-align:center!important; }
.upload-progress-tray .upload-tray-list .upload-progress-item .upi-bar-track { width:100%!important; min-width:0!important; }

/* 本轮：原片本机缓存入口与非阻塞推送进度。 */
.review-original-download { cursor:pointer; }
body:has(#uploadProgressTray) #pushProgressTray { right:430px; }
.push-progress-tray .upload-tray-head span { display:inline; color:var(--text-2); font-size:14px; font-weight:700; }
.push-progress-tray { overflow:visible; }
.push-progress-tray .upload-tray-head button { position:relative; top:-24px; width:28px; height:28px; padding:0; display:grid; place-items:center; line-height:1; border-color:var(--accent); }
.push-progress-tray .upload-tray-head button[title="关闭"] { font-size:21px; }
.push-progress-tray .upload-progress-item.is-error .upi-bar-fill { background:var(--danger); }
.original-download-tray .upload-tray-head span { display:inline; color:var(--text-2); font-size:14px; font-weight:700; }
.original-download-tray .original-download-item { pointer-events:auto; }
.original-download-tray .original-download-item .upi-speed { grid-column:1 / 2; align-self:center; }
.original-download-open { grid-column:2; border:1px solid rgba(255,126,179,.55); border-radius:8px; padding:5px 12px; background:linear-gradient(135deg,#ff7eb3,#8b5cf6); color:#fff; font-weight:700; cursor:pointer; pointer-events:auto; }
.original-download-open:hover { filter:brightness(1.08); }
.original-download-item.is-error .upi-bar-fill { background:var(--danger); }

/* 批量重命名六种模式固定两行三列；六种模式都逐份显示可编辑预览。 */
.batch-rename-modal.modal { width:1000px; max-width:96vw; }
.brn-mode-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:8px 0 16px; }
.modal .brn-mode { display:block; margin:0; cursor:pointer; }
.modal .brn-mode input { position:absolute; opacity:0; pointer-events:none; width:1px; height:1px; margin:0; }
.modal .brn-mode span { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 10px; border:1px solid var(--line); border-radius:10px; background:var(--bg-3); color:var(--text-2); text-align:center; font-size:15px; line-height:1.35; transition:.15s; }
.modal .brn-mode input:checked + span { border-color:var(--accent); background:rgba(255,126,179,.16); color:#fff; box-shadow:0 0 0 2px rgba(255,126,179,.08); }
.brn-editable-box { max-height:44vh; overflow:auto; padding-right:4px; margin-top:12px; }
.brn-editable-grid { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; }
.brn-edit-card { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto; column-gap:12px; min-width:0; padding:11px; border:1px solid rgba(255,255,255,.08); border-radius:11px; background:rgba(255,255,255,.025); }
.modal .brn-edit-card label { margin:0 0 5px; color:var(--text-3); font-size:13px; }
.modal .brn-edit-card label:first-child { grid-column:1; grid-row:1; }
.modal .brn-edit-card label:nth-of-type(2) { grid-column:2; grid-row:1; }
.modal .brn-edit-card input { margin:0; min-width:0; font-size:15px; }
.modal .brn-edit-card .brn-original { grid-column:1; grid-row:2; opacity:.72; cursor:default; }
.brn-edit-card .brn-new-wrap { grid-column:2; grid-row:2; min-width:0; }
.brn-new-wrap em { display:block; margin-top:4px; color:var(--warn); font-size:13px; font-style:normal; }
/* 重命名逐行对照文件缩略图，名称输入与既有命名规则保持不变。 */
.batch-rename-modal .brn-edit-row { display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; align-items:stretch; min-width:0; }
.batch-rename-modal .brn-media-preview { position:relative; min-height:88px; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:var(--bg-3); }
.batch-rename-modal .brn-media-thumb { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:contain; }
.batch-rename-modal .brn-media-thumb.placeholder { display:grid; place-items:center; font-size:28px; color:var(--text-3); }
@media (max-width:540px) {
  .batch-rename-modal .brn-edit-row { grid-template-columns:64px minmax(0,1fr); gap:8px; }
  .batch-rename-modal .brn-media-preview { min-height:72px; }
}
.admin-card.admin-plan-card { display:grid; grid-template-columns:max-content minmax(0,1fr); column-gap:14px; align-items:baseline; }
.admin-plan-card .admin-card-label { grid-column:1 / -1; }
.admin-plan-card .admin-card-value { grid-column:1; }
.admin-plan-card .admin-card-sub { grid-column:2; margin-top:0; min-width:0; white-space:nowrap; }
@media (max-width:720px) {
  .brn-mode-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-card.admin-plan-card { column-gap:8px; }
}

/* 本轮细节：小组详情列宽、节点表单字号、客服联系方式对齐。 */
#projectDetailBody .rep-info-line .rep-kv.kv-created {
  flex: 1.28 1 0;
  min-width: 154px;
}
#projectDetailBody .rep-info-line .rep-kv.kv-created b,
#projectDetailBody .rep-info-line .rep-kv.kv-members b { white-space:nowrap; word-break:normal; }
#projectDetailBody .rep-info-line .rep-kv.kv-members {
  flex: .72 1 0;
  min-width: 82px;
}

#projectNodesBody #newNodeName { font-size:15px!important; }
#projectNodesBody #newNodeStart,
#projectNodesBody #newNodeEnd,
.rep-edit-node-wrap #editNodeStart,
.rep-edit-node-wrap #editNodeEnd { font-size:16px!important; }
.rep-edit-node-wrap #editNodeName { font-size:15px!important; }
.rep-edit-node-wrap #editNodeAddRemind,
.rep-edit-node-wrap .rep-rm-head-tip,
.rep-edit-node-wrap .rep-rm-preset,
.rep-edit-node-wrap .rep-rm-amt,
.rep-edit-node-wrap .rep-rm-unit,
.rep-edit-node-wrap .rep-node-method { font-size:14px!important; }

.site-pane .sup-cfg-row .sup-cfg-val,
.site-pane .sup-cfg-row .sup-cfg-note {
  box-sizing:border-box;
  background:var(--bg-3)!important;
  color:var(--text)!important;
  border:1px solid var(--line)!important;
  border-radius:8px;
}
.site-pane .sup-cfg-row input:-webkit-autofill,
.site-pane .sup-cfg-row input:-webkit-autofill:hover,
.site-pane .sup-cfg-row input:-webkit-autofill:focus {
  -webkit-text-fill-color:var(--text)!important;
  -webkit-box-shadow:0 0 0 1000px #171525 inset!important;
  caret-color:var(--text)!important;
}

.support-row .sr-label {
  flex:0 0 90px;
  min-width:90px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-items:center;
  gap:7px;
}
.support-row .sr-icon {
  width:24px;
  height:24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:17px;
  line-height:1;
}
.support-row .sr-val { min-width:0; flex-wrap:nowrap; }
.support-row .sr-val > b { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.support-row .support-copy-btn,
.support-row .support-qq-btn {
  flex:0 0 auto;
  margin-left:auto!important;
  white-space:nowrap;
}

/* 阻止 Chromium / 360 登录管家把已保存邮箱灌入普通搜索及业务输入框。 */
@keyframes dajianNonAuthAutofill { from { opacity:.999; } to { opacity:1; } }
input:-webkit-autofill,
textarea:-webkit-autofill {
  animation-name:dajianNonAuthAutofill!important;
  animation-duration:.01s!important;
  animation-iteration-count:1!important;
}
input:not(#loginEmail):not(#loginPwd):not(#regName):not(#regEmail):not(#regPwd):-webkit-autofill,
textarea:-webkit-autofill {
  -webkit-text-fill-color:var(--text)!important;
  -webkit-box-shadow:0 0 0 1000px #171525 inset!important;
  caret-color:var(--text)!important;
}

/* 2026-08-26 成员列表：身份紧跟姓名显示，权限弹窗首行紧凑对齐。 */
.rep-mem-name-line {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  flex-wrap:wrap;
}
.rep-mem-name-line > b {
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.rep-mem-name-line .rep-mem-tag {
  flex:0 0 auto;
  margin:0;
}
.perm-preset-row { flex-wrap:nowrap; }
.perm-preset-row .member-role-select,
.perm-preset-row .member-perm-clear { font-size:14px; }
.perm-preset-row .member-role-select { min-width:132px; }
.perm-preset-row .member-perm-clear { white-space:nowrap; }
.perm-tag:disabled { cursor:default; opacity:.82; }
.perm-preset-row{flex-wrap:nowrap!important}.perm-preset-row .perm-preset-label{white-space:nowrap;flex:0 0 auto}.member-role-select,.member-perm-clear{font-size:13px!important}
.rep-gantt{position:relative}.rep-gantt-head-label,.rep-gantt-row .rep-gantt-label{width:var(--gantt-label-width,140px)!important;flex:0 0 var(--gantt-label-width,140px)!important}.rep-gantt-label-resizer{position:absolute;left:calc(var(--gantt-label-width,140px) - 4px);top:0;bottom:0;width:8px;z-index:9;cursor:col-resize;background:transparent}.rep-gantt-label-resizer:hover{background:rgba(255,126,179,.3)}
.ra-modal-list{display:flex;flex-direction:column;gap:8px;max-height:58vh;overflow:auto;width:100%;box-sizing:border-box;padding:2px}.ra-modal-member{display:grid!important;grid-template-columns:7em minmax(100px,1fr) 140px 52px 52px;align-items:center;width:100%;box-sizing:border-box;gap:6px!important;padding:8px 9px!important}.ra-member-pick{display:flex;align-items:center;white-space:nowrap;min-width:0}.ra-member-pick .ra-name{display:block;width:6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ra-modal-member .ra-input{width:100%!important;min-width:0;box-sizing:border-box;font-size:13px!important;padding:6px 8px!important}.ra-modal-member .primary-btn,.ra-modal-member .ghost-btn{min-width:0!important;width:52px!important;padding:6px 5px!important;font-size:13px!important;white-space:nowrap}.ra-modal-member .ra-chips{min-width:0}.modal-perm .perm-cols{grid-template-columns:repeat(2,minmax(0,1fr))!important;width:100%}.modal-perm .perm-col{min-width:0}.rep-gantt-name{overflow:visible!important;text-overflow:clip!important;white-space:nowrap!important;position:relative;z-index:6}.rep-gantt-row .rep-gantt-label{overflow:visible!important}@media(max-width:900px){.ra-modal-member{grid-template-columns:7em 1fr 52px 52px}.ra-modal-member .ra-chips,.ra-modal-member .ra-input{grid-column:1/-1}.modal-perm .perm-cols{grid-template-columns:1fr!important}}
.modal-perm .member-layout{display:grid!important;grid-template-columns:268px minmax(0,1fr);gap:24px;align-items:start;width:100%}.modal-perm .member-left,.modal-perm .member-right{min-width:0;width:100%}.modal-perm .perm-section{width:100%;box-sizing:border-box}.modal-perm .perm-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}@media(max-width:900px){.modal-perm .member-layout{grid-template-columns:1fr}.modal-perm .perm-items{grid-template-columns:1fr}}
.modal-perm .member-layout{display:block!important}.modal-perm .member-left{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 14px;margin-bottom:16px}.modal-perm .member-profile-field{display:flex;flex-direction:column;gap:5px;min-width:0}.modal-perm .member-profile-field label,.modal-perm .member-profile-field input,.modal-perm .member-profile-field select{font-size:14px!important}.modal-perm .member-right{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.modal-perm .perm-section{margin:0!important}.team-project-candidate-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:55vh;overflow:auto}.team-project-candidate{display:grid;grid-template-columns:20px 38px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.035);cursor:pointer}.team-project-candidate.disabled{opacity:.58;cursor:default}.team-project-candidate input{width:auto;margin:0}.team-project-candidate-main{display:flex;flex-direction:column;min-width:0}.team-project-candidate-main b,.team-project-candidate-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-project-candidate-main small,.team-project-candidate-state{font-size:13px;color:var(--text-3)}.rep-member-layout{display:block!important}.rep-member-list-col{width:100%!important}.rep-member-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.rep-members{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rep-member-add-backdrop{position:fixed;inset:0;z-index:9997;background:rgba(4,3,12,.72);backdrop-filter:blur(3px)}.rep-member-add-pop{position:fixed!important;z-index:9998;left:50%;top:50%;transform:translate(-50%,-50%);width:min(940px,92vw)!important;max-height:82vh;overflow:auto;padding:20px!important;border:1px solid rgba(255,126,179,.45)!important;border-radius:18px!important;background:var(--panel,#171323)!important;box-shadow:0 24px 80px rgba(0,0,0,.6)}.rep-member-add-pop:before,.rep-member-add-pop:after{content:'';position:absolute;top:-17px;width:32px;height:32px;border-radius:70% 35% 65% 40%;background:linear-gradient(135deg,#ff92c7,#ff5fad);box-shadow:0 0 12px rgba(255,92,170,.7)}.rep-member-add-pop:before{left:42%;transform:rotate(-25deg)}.rep-member-add-pop:after{right:42%;transform:rotate(25deg)}.rep-add-pop-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}@media(max-width:900px){.modal-perm .member-left,.modal-perm .member-right,.team-project-candidate-list,.rep-members{grid-template-columns:1fr}}

/* 2026-08-27：成员弹窗、邀请候选人与站内信发送者的统一视觉。 */
.member-order-badge{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--line);border-radius:10px;color:var(--text-2);background:rgba(255,255,255,.035);font-size:14px;white-space:nowrap}
.rep-member-add-pop:before,.rep-member-add-pop:after{content:none!important}
.rep-member-add-pop>.q-rename-ears{z-index:3;pointer-events:none}
.rep-direct-invite{margin-top:14px;padding:14px;border:1px solid rgba(255,126,179,.26);border-radius:12px;background:rgba(255,255,255,.035)}
.rep-direct-invite-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}
.rep-direct-invite-head b{color:var(--text);font-size:16px}
.rep-direct-invite-head span{color:var(--text-3);font-size:14px}
.rep-direct-invite-roles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rep-direct-invite-roles .ghost-btn{width:100%;min-width:0;margin:0;padding:8px 10px;font-size:15px}
.rep-direct-invite .invite-result{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--line)}
@media(max-width:700px){.rep-direct-invite-head{align-items:flex-start;flex-direction:column}.rep-direct-invite-roles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rep-mem-avatar{background-repeat:no-repeat!important}
.team-project-candidate{grid-template-columns:26px 42px minmax(0,1fr) auto!important;grid-template-areas:"check avatar name id" ". email email state";column-gap:9px;row-gap:4px;padding:12px!important}
.team-project-candidate>input{grid-area:check;width:20px!important;height:20px!important;margin:0!important;accent-color:#ff6fb5}
.team-project-candidate-avatar{grid-area:avatar;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background-repeat:no-repeat;background-size:cover;background-position:center;color:#fff;font-weight:800;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.team-project-candidate-name{grid-area:name;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1)}
.team-project-candidate-id{grid-area:id;white-space:nowrap;color:var(--text-2);font-size:13px}
.team-project-candidate-email{grid-area:email;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:13px}
.team-project-candidate-state{grid-area:state;justify-self:end;white-space:nowrap;font-size:13px;color:var(--text-3)}
.im-sender-badge{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,#ff7eb3 0%,#b657f2 100%);color:#fff!important;font-weight:750;line-height:1.35;vertical-align:middle;box-shadow:0 3px 12px rgba(190,78,220,.22)}
.im-sender-user-note{margin-right:7px}
.im-sender-person{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--text-1);vertical-align:middle}
.im-sender-public-id{display:inline-block;padding-left:7px;border-left:1px solid rgba(255,255,255,.34);font-size:12px;font-weight:600;opacity:.9;white-space:nowrap}
.im-sender-person .im-sender-public-id{border-left-color:var(--line);color:var(--text-3)}
@media(max-width:900px){.team-project-candidate{grid-template-columns:24px 36px minmax(0,1fr) auto!important;grid-template-areas:"check avatar name id" ". email email state"!important;column-gap:7px!important;row-gap:4px!important}.team-project-candidate-avatar{width:34px;height:34px}.team-project-candidate-id,.team-project-candidate-email,.team-project-candidate-state{font-size:12px!important}.team-project-candidate-list{grid-template-columns:1fr!important}}

/* 首页·小组动态：仅保留纵向滚动，长内容在卡片内自动换行。 */
.hub-widget[data-wid="activity"],
.hub-widget[data-wid="activity"]>.hw-body,
#hubActivityFeed{max-width:100%;min-width:0;overflow-x:hidden!important;scrollbar-width:thin}
#hubActivityFeed .activity-item,#hubActivityFeed .activity-main{min-width:0;max-width:100%}
#hubActivityFeed .activity-line,#hubActivityFeed .activity-time{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
.hub-widget[data-wid="activity"]>.hw-body::-webkit-scrollbar:horizontal,#hubActivityFeed::-webkit-scrollbar:horizontal{height:0;display:none}

/* 2026-08-27：登录界面中原本不超过 17px 的文字统一为 15px。 */
.auth-screen .auth-tab,
.auth-screen .auth-form input,
.auth-screen .auth-form button,
.auth-screen .auth-hint,
.auth-screen .auth-err,
.auth-screen .auth-foot,
.auth-screen .auth-agree,
.auth-screen .auth-text-btn,
.auth-screen .auth-divider,
.auth-screen .wechat-login-btn,
.auth-screen .wechat-login-icon,
.auth-screen .auth-wechat-status { font-size: 15px !important; }

/* 标题和大字使用 Bold；普通正文继承 Normal。 */
h1, h2, h3, h4, h5, h6,
.brand-name, .auth-slogan, .sec-title, .q-rename-title { font-family: var(--font-normal); font-weight: 700; }

/* 2026-08-28：成员邀请名单固定两行，第一行选择/头像/姓名/ID，第二行邮箱/团队。 */
.team-project-candidate{display:flex!important;flex-direction:column!important;gap:6px!important;padding:10px 12px!important;min-width:0}
.team-project-candidate-line{display:flex;align-items:center;min-width:0;width:100%}
.team-project-candidate-primary{gap:9px}
.team-project-candidate-secondary{gap:12px;padding-left:55px}
.team-project-candidate-primary>input{width:20px!important;height:20px!important;flex:0 0 20px;margin:0!important;accent-color:#ff6fb5}
.team-project-candidate-avatar{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background-repeat:no-repeat;background-size:cover;background-position:center;color:#fff;font-weight:800;box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.team-project-candidate-name{min-width:0;max-width:11em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-1)}
.team-project-candidate-id{margin-left:auto;flex:0 0 auto;white-space:nowrap;color:var(--text-2);font-size:15px!important}
.team-project-candidate-email{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-3);font-size:15px!important}
.team-project-candidate-state{flex:0 0 auto;margin-left:auto;white-space:nowrap;font-size:15px!important;color:var(--text-3)}
@media(max-width:700px){.team-project-candidate-secondary{padding-left:0}.team-project-candidate-name{max-width:7em}.team-project-candidate-id,.team-project-candidate-email,.team-project-candidate-state{font-size:15px!important}}

/* 站内信发件人：只给来源标识加渐变框，姓名与 ID 正常显示并纵向居中。 */
.um-msg-from,.im-msg-head,.mh-sender>div{display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap}
.im-sender-badge{flex:0 0 auto;line-height:22px!important;min-height:22px;padding:1px 9px!important;vertical-align:middle}
.im-sender-user-note{margin-right:0!important}
.im-sender-person{display:inline-flex!important;align-items:center!important;gap:6px;line-height:24px;font-weight:500!important;vertical-align:middle}
.im-sender-public-id{font-size:15px!important;line-height:1.2}

/* 登录、找回密码和设备验证码弹窗：标题保留标题字号，其余可见内容统一 15px。 */
.auth-flow-modal .modal-card>*:not(h1):not(h2):not(h3),
.auth-flow-modal .modal-card p,
.auth-flow-modal .modal-card b,
.auth-flow-modal .modal-card span,
.auth-flow-modal .modal-card label,
.auth-flow-modal .modal-card input,
.auth-flow-modal .modal-card button,
.auth-flow-modal .modal-card .auth-err{font-size:15px!important}
.auth-flow-modal .auth-code-row{align-items:stretch}
.auth-flow-modal .auth-code-row input,.auth-flow-modal .auth-code-row button{min-height:42px}

/* 左侧小组栏：文字使用常规字重，彻底隐藏横向滚动条。 */
.project-list{overflow-x:hidden!important;scrollbar-width:thin;min-width:0}
.project-list::-webkit-scrollbar:horizontal{height:0!important;display:none!important}
.project-list .proj-card{width:100%;max-width:100%;box-sizing:border-box;overflow:hidden}
.project-list .proj-card .pc-main{min-width:0;overflow:hidden}
.project-list .proj-card .pc-name,.project-list .proj-card .pc-name *{font-weight:400!important}
.sidebar-group-section{min-width:0;border:1px solid transparent;border-radius:9px;margin-bottom:3px;padding:0 2px 3px}
.sidebar-group-section.drag-target{background:rgba(255,126,179,.15);border-color:var(--accent)}
.sidebar-group-section.group-drag-before{border-top:2px solid var(--accent)}
.sidebar-group-section.group-drag-after{border-bottom:2px solid var(--accent)}
.sidebar-project-group{display:flex;align-items:center;gap:3px;min-width:0;padding:7px 2px 5px;color:var(--text-2);font-size:14px;font-weight:600}
.sidebar-group-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-group-toggle,.sidebar-group-archive,.sidebar-group-handle{flex:0 0 22px;width:22px;height:22px;border:0;border-radius:5px;background:transparent;color:var(--text-3);cursor:pointer;padding:0}
.sidebar-group-toggle:hover,.sidebar-group-archive:hover,.sidebar-group-handle:hover{background:rgba(255,255,255,.1);color:var(--accent)}
.sidebar-group-handle{cursor:grab;touch-action:none}
.sidebar-group-handle:active{cursor:grabbing}
.sidebar-group-items{min-height:7px}
.sidebar-group-section.is-collapsed .sidebar-group-items{display:none}
.sidebar-archive-zone{margin-top:12px;padding:5px;border:1px solid #555761;border-radius:9px;background:rgba(117,120,128,.14)}
.sidebar-archive-title{padding:6px 5px;color:#a9abb2;font-size:14px;font-weight:600}
.sidebar-archive-zone .sidebar-group-section{background:rgba(117,120,128,.07)}
.sidebar-archive-zone .sidebar-group-section.drag-target{background:rgba(255,126,179,.15)}
.project-list .proj-card.is-dragging{opacity:.45}
.hub-grid .hub-card.is-dragging{opacity:.45}
.modal.sidebar-group-modal{width:430px;max-width:calc(100vw - 32px)}
.modal.sidebar-group-modal .modal-card{width:100%;max-width:100%}
.modal.sidebar-group-modal .modal-card > p{font-size:16px}
.project-list .proj-card .pc-pin,.project-list .proj-card .pc-group-edit{flex:0 0 24px;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--text-3);font-size:17px;line-height:24px;cursor:pointer}
.project-list .proj-card .pc-pin:hover,.project-list .proj-card .pc-group-edit:hover{background:rgba(255,255,255,.1);color:var(--accent)}

/* 首页常用功能画布覆盖整个首页内容区，所有卡片均可在全屏范围内拖动。 */
.project-hub>.hub-widget-layer{position:absolute!important;inset:0!important;margin:0!important;min-height:100%!important;pointer-events:none;overflow:visible;z-index:20!important}
.project-hub>.hub-widget-layer>.hub-widget{pointer-events:auto}

/* 记事簿紧凑布局：新增输入为单行高度，工具与记录减少无效留白。 */
.hub-notepad-v2{gap:6px!important;min-height:0!important;padding:4px!important}
.note-notepad-head{min-height:28px;padding:0!important}
.note-add-btn{width:30px!important;min-width:30px!important;height:28px!important;min-height:28px!important;padding:0!important;border-radius:8px!important}
.note-compose{border-radius:10px!important;padding:5px 6px 4px 8px!important}
.note-compose::before{width:4px!important}
.note-compose{display:flex!important;align-items:center!important;gap:6px!important;min-height:48px!important}
.note-compose-input{flex:1 1 130px!important;width:auto!important;height:38px!important;min-height:38px!important;margin:0!important;padding:8px 10px!important;resize:none!important;line-height:1.35!important}
.note-compose .note-toolbar{display:flex!important;flex:1 1 190px!important;max-width:62%!important;flex-wrap:nowrap!important;gap:4px!important;margin:0!important;padding:0!important;overflow-x:auto;align-items:center}
.note-compose .note-color-picker{display:flex;flex-wrap:nowrap;gap:3px}
.note-compose .note-reminder-draft{flex:0 0 auto!important;white-space:nowrap}
.note-entry-list{gap:6px!important}
.note-entry{min-height:0!important;border-radius:9px!important;grid-template-columns:5px minmax(0,1fr)!important}
.note-entry-main{padding:8px 10px 6px!important}
.note-entry-text{line-height:1.45!important}
.note-entry-foot{margin-top:4px!important}
.note-entry-editor{min-height:58px!important;padding:7px 9px!important}
@media(max-width:680px){.note-compose{align-items:stretch!important}.note-compose-input{flex-basis:110px!important}.note-compose .note-toolbar{max-width:58%!important}}

/* 后台操作日志：导出、多选、全选与批量删除。 */
.boss-log-toolbar{gap:8px!important}
.boss-log-toolbar .muted{margin-left:auto}

/* ===== 2026-08-28：页面精修与统一排版 ===== */

/* 上传记录：小组名、ID、统计、组长各自独占一行；用户小组只保留粉色圆点。 */
#bossContent[data-page="projects"] .up-proj-name.up-proj-title-row{display:flex;align-items:center;gap:8px;min-width:0;font-weight:650}
#bossContent[data-page="projects"] .up-proj-name.up-proj-title-row>span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#bossContent[data-page="projects"] .up-proj-id-row{margin-top:4px;color:var(--text-3);font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#bossContent[data-page="projects"] .up-customer-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#ff78bc;box-shadow:0 0 0 3px rgba(255,120,188,.13),0 0 10px rgba(255,120,188,.6)}

/* 优惠券主操作按钮与全站主色一致。 */
#bossContent[data-page="coupons"] .coupon-new-btn{background:linear-gradient(135deg,#ff78bd,#a855f7)!important;border:0!important;color:#fff!important;box-shadow:0 7px 18px rgba(168,85,247,.28)}

/* 订单核实：保留深色底，提高粉紫层次和信息分区辨识度。 */
#bossContent[data-page="orders"] .order-review-page{padding:2px;border-radius:16px;background:linear-gradient(145deg,rgba(255,120,189,.055),rgba(168,85,247,.045),transparent 55%)}
#bossContent[data-page="orders"] .order-kpis>div:nth-child(1){border-color:rgba(255,126,179,.34);background:linear-gradient(145deg,rgba(255,126,179,.16),rgba(28,24,45,.78))}
#bossContent[data-page="orders"] .order-kpis>div:nth-child(2){border-color:rgba(192,132,252,.34);background:linear-gradient(145deg,rgba(168,85,247,.15),rgba(28,24,45,.78))}
#bossContent[data-page="orders"] .order-search-bar{border:1px solid rgba(255,126,179,.2);background:linear-gradient(90deg,rgba(255,126,179,.08),rgba(168,85,247,.06))}
#bossContent[data-page="orders"] .order-review-table thead{background:linear-gradient(90deg,rgba(255,126,179,.16),rgba(168,85,247,.16))}
.boss-note-15{font-size:15px!important}

/* 敏感词策略：复选框保持正常尺寸，内容使用清晰的卡片布局。 */
#bossContent[data-page="risk-keywords"] .risk-keyword-add-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:10px;margin-top:12px}
#bossContent[data-page="risk-keywords"] .risk-keyword-add-row .search-input{width:100%;min-width:0}
#bossContent[data-page="risk-keywords"] .risk-strategy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px}
#bossContent[data-page="risk-keywords"] .risk-switch-card{display:flex!important;align-items:flex-start;gap:12px;margin:0!important;padding:14px;border:1px solid rgba(255,126,179,.18);border-radius:12px;background:rgba(255,255,255,.025);cursor:pointer}
#bossContent[data-page="risk-keywords"] .risk-switch-card:hover{border-color:rgba(255,126,179,.48);background:rgba(255,126,179,.065)}
#bossContent[data-page="risk-keywords"] .risk-switch-card input[type="checkbox"]{width:20px!important;height:20px!important;min-width:20px!important;flex:0 0 20px;margin:1px 0 0!important;accent-color:var(--accent)}
#bossContent[data-page="risk-keywords"] .risk-switch-card span{display:flex;min-width:0;flex-direction:column;gap:4px}
#bossContent[data-page="risk-keywords"] .risk-switch-card b{color:var(--text);font-size:16px}
#bossContent[data-page="risk-keywords"] .risk-switch-card small{color:var(--text-3);font-size:15px;line-height:1.5}

/* 站点设置的支付配置 / 系统开关：开关不再被通用输入框规则拉成长条。 */
#bossContent[data-page="content"] .site-tabs{margin-top:0}
#bossContent[data-page="content"] .site-config-pane{display:flex;flex-direction:column;gap:14px}
#bossContent[data-page="content"] .site-pay-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
#bossContent[data-page="content"] .site-config-card{min-width:0;margin:0;padding:14px;border-style:solid;background:linear-gradient(145deg,rgba(255,126,179,.055),rgba(168,85,247,.04))}
#bossContent[data-page="content"] .site-config-card>.row{margin:0 0 6px}
#bossContent[data-page="content"] .site-switch-card{display:flex!important;align-items:flex-start;gap:12px;margin:0!important;padding:13px 14px;border:1px solid rgba(255,126,179,.2);border-radius:12px;background:rgba(255,255,255,.025);cursor:pointer}
#bossContent[data-page="content"] .site-switch-card:hover{border-color:rgba(255,126,179,.48);background:rgba(255,126,179,.06)}
#bossContent[data-page="content"] .site-switch-card input[type="checkbox"],
#bossContent[data-page="content"] .site-config-card input[type="checkbox"]{width:20px!important;height:20px!important;min-width:20px!important;flex:0 0 20px;margin:1px 0 0!important;padding:0!important;accent-color:var(--accent)}
#bossContent[data-page="content"] .site-switch-card>span{display:flex;min-width:0;flex-direction:column;gap:3px}
#bossContent[data-page="content"] .site-switch-card b{color:var(--text);font-size:16px}
#bossContent[data-page="content"] .site-switch-card small{color:var(--text-3);font-size:15px;line-height:1.45}
#bossContent[data-page="content"] .site-system-switches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
#bossContent[data-page="content"] .site-system-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
#bossContent[data-page="content"] .site-system-fields>label{display:flex;flex-direction:column;gap:7px;margin:0;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.022)}
#bossContent[data-page="content"] .site-system-fields input{width:100%;min-width:0;box-sizing:border-box}

/* 记事簿：按钮视觉为细长横条，但保留 30px 的完整点击热区。 */
.note-notepad-head{display:block!important;min-height:0!important;padding:0!important;margin:-7px 0 -4px!important}
.note-add-btn{position:relative!important;isolation:isolate;display:flex!important;width:100%!important;min-width:0!important;height:20px!important;min-height:20px!important;padding:0 14px!important;border:0!important;border-radius:0!important;background:transparent!important;font-size:15px!important;line-height:1!important;align-items:center!important;justify-content:center!important;box-shadow:none!important;margin:0!important}
.note-add-btn::before{content:"";position:absolute;z-index:-1;inset:5px 0;border:1px solid rgba(255,143,199,.45);border-radius:6px;background:linear-gradient(90deg,rgba(255,126,179,.3),rgba(168,85,247,.3));transition:filter .15s,background .15s}
.note-add-btn:hover::before{filter:brightness(1.18);background:linear-gradient(90deg,rgba(255,126,179,.48),rgba(168,85,247,.48))}
.note-compose{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;min-height:0!important;padding:8px 8px 7px 10px!important;border-radius:11px!important}
.note-compose-input{display:block!important;flex:none!important;width:100%!important;height:auto!important;min-height:0!important;margin:0!important;padding:12px 13px!important;box-sizing:border-box!important;resize:none!important;overflow-y:auto!important;scrollbar-width:none;line-height:1.6!important}
.note-compose-input::-webkit-scrollbar,.note-entry-editor::-webkit-scrollbar{display:none}
.note-compose .note-toolbar{display:flex!important;width:100%!important;max-width:none!important;flex:0 0 auto!important;flex-wrap:wrap!important;gap:6px!important;margin-top:8px!important;padding:8px 2px 0!important;overflow:visible!important;border-top:1px solid rgba(255,255,255,.07)!important;align-items:center!important}
.note-compose .note-reminder-draft{flex:1 1 160px!important;min-width:120px;white-space:normal!important}
.note-entry-editor{width:100%!important;height:auto!important;min-height:0!important;padding:12px!important;resize:none!important;overflow-y:auto!important;scrollbar-width:none;line-height:1.6!important}
.note-rich-toolbar{margin-top:8px!important}

/* 外层 .admin-content 已有与「团队概览」一致的 22px，子页面不再重复叠加。 */
#adminModule[data-page="members"],#adminModule[data-page="projects"],#adminModule[data-page="tags"],#adminModule[data-page="workflow"],#adminModule[data-page="recycle"],#adminModule[data-page="userInbox"],
#bossContent[data-page="dashboard"],#bossContent[data-page="visitors"],#bossContent[data-page="sales"],#bossContent[data-page="projects"],#bossContent[data-page="users"],#bossContent[data-page="enterprises"],#bossContent[data-page="inbox"],#bossContent[data-page="messages"],#bossContent[data-page="msgHistory"],#bossContent[data-page="gifts"],#bossContent[data-page="invoices"],#bossContent[data-page="payment"],#bossContent[data-page="content"],#bossContent[data-page="faqs"]{padding-top:20px!important}
#bossContent[data-page="traffic"],#bossContent[data-page="risk-content"],#bossContent[data-page="risk-groups"],#bossContent[data-page="risk-files"],#bossContent[data-page="risk-users"]{padding-top:12px!important}
#adminModule[data-page="members"]>:first-child,#adminModule[data-page="projects"]>:first-child,#adminModule[data-page="tags"]>:first-child,#adminModule[data-page="workflow"]>:first-child,#adminModule[data-page="recycle"]>:first-child,#adminModule[data-page="userInbox"]>:first-child,
#bossContent[data-page="dashboard"]>:first-child,#bossContent[data-page="visitors"]>:first-child,#bossContent[data-page="sales"]>:first-child,#bossContent[data-page="traffic"]>:first-child,#bossContent[data-page="projects"]>:first-child,#bossContent[data-page="users"]>:first-child,#bossContent[data-page="enterprises"]>:first-child,#bossContent[data-page="inbox"]>:first-child,#bossContent[data-page="messages"]>:first-child,#bossContent[data-page="msgHistory"]>:first-child,#bossContent[data-page="gifts"]>:first-child,#bossContent[data-page="invoices"]>:first-child,#bossContent[data-page="payment"]>:first-child,#bossContent[data-page="content"]>:first-child,#bossContent[data-page="faqs"]>:first-child{margin-top:0!important}
#bossContent[data-page="risk-content"]>:first-child,#bossContent[data-page="risk-groups"]>:first-child,#bossContent[data-page="risk-files"]>:first-child,#bossContent[data-page="risk-users"]>:first-child{margin-top:0!important}

/* 批注栏收起 / 展开按钮与相邻导出按钮同高。 */
.comments-panel.review-side .cp-head>#sideToggle{height:30px!important;min-height:30px!important;padding:3px 8px!important;line-height:22px!important;box-sizing:border-box;font-size:16px!important;display:inline-flex;align-items:center;justify-content:center}

/* 全站页面正文的 17–19px 档位下调 2px；标题/大标题类保持原字号。 */
html,body{font-size:16px}
.empty-state p,.modal input,.modal textarea,.modal select,.np-form-clear,.np-member,.av-name,.q-rename-btn,.invite-role-btn,.hub-account-name,.hub-empty,.ws-tab,.rep-node-time-wrap .rep-node-time,.hc-name,.support-row,.support-sub,.modal .support-textarea,.modal label,.ws-lock-body,.acct-plan,.addon-disc-row input,.modal .acct-section h4,.dialog-card h4,.modal .usage-bar,.dialog-card .usage-bar,.um-send-form .np-form-input,.um-send-form .np-form-select,.um-send-form .np-form-textarea,.plan-config-field input{font-size:15px!important}
.np-form-input,.np-form-select,.np-form-textarea,.dialog-body,.dialog-input,.dialog-actions .primary-btn,.dialog-actions .ghost-btn,.rv-toggle,.ctrl-btn,.bm-pick-mark,.vt-btn,.subtitle,.admin-back,.admin-link,.admin-tab,.modal .primary-btn,.modal .ghost-btn,.dialog-card .primary-btn,.dialog-card .ghost-btn,.hub-welcome p{font-size:16px!important}

@media(max-width:980px){
  #bossContent[data-page="risk-keywords"] .risk-strategy-grid,#bossContent[data-page="content"] .site-system-switches{grid-template-columns:1fr}
  #bossContent[data-page="content"] .site-pay-grid,#bossContent[data-page="content"] .site-system-fields{grid-template-columns:1fr}
}
.boss-log-select-all{display:inline-flex!important;align-items:center;gap:6px;margin:0!important;white-space:nowrap}
.boss-log-select-all input,.boss-log-check{width:17px!important;height:17px!important;margin:0!important;accent-color:var(--accent)}
.boss-log-head,.boss-log-panel .admin-log-row{grid-template-columns:28px 160px 125px 130px minmax(220px,1fr)!important;gap:10px!important}
.boss-log-check-head,.boss-log-check-wrap{display:flex;align-items:center;justify-content:center;margin:0!important}
@media(max-width:900px){.boss-log-head{display:none!important}.boss-log-panel .admin-log-row{grid-template-columns:26px minmax(0,1fr)!important}.boss-log-panel .admin-log-row>span{grid-column:2}.boss-log-check-wrap{grid-row:1/5;grid-column:1}}
.ci-actions .ci-seen{display:inline-flex;align-items:center;gap:4px;min-width:0;padding-inline:7px;color:#d8c7ff;border-color:rgba(168,85,247,.4)}
.ci-actions .ci-seen b{font-size:inherit;line-height:1;color:#ff9bd0}
/* 2026-08-28：首页待办与小组动态中的不同语义使用不同颜色。 */
.pi-meta .pi-project { color: #69d8c4; font-weight: 600; }
.pi-meta .pi-status { color: #ff8fc7; font-weight: 600; }
.pi-meta .pi-sep { color: var(--text-3); }
.activity-time .activity-project-name { color: #69d8c4; font-weight: 600; }
.activity-time .activity-relative-time { color: #ff8fc7; }
.activity-time .activity-time-sep { color: var(--text-3); }
/* 内部账号：操作列按三个按钮的实际宽度收紧并保持完整一行。 */
.emp-table th:last-child,
.emp-table td:last-child { min-width: 148px !important; width: 13% !important; white-space: nowrap !important; }
.emp-table td.emp-actions { min-width: 148px !important; width: 13% !important; white-space: nowrap !important; }
/* 首页常用功能：待办文件名为白色；动态文件名为紫色；状态与时间统一粉色。 */
#hubPendingList .pending-item .pi-title { color: #fff; }
#hubActivityFeed .activity-line .act-file { color: #c084fc; }
/* 版本对比只使用页面下方统一审阅控制栏，禁止浏览器在双画面内部生成第二套控件。 */
.compare-stage .cmp-media { object-fit: contain; }
.compare-stage video.cmp-media::-webkit-media-controls,
.compare-stage audio.cmp-media::-webkit-media-controls { display: none !important; }
/* 手机端滑动进度提示在网页端必须始终隐藏；mobile.css 只在 mobile-ui 下按需显示。 */
.mobile-swipe-progress { display: none; }

/* 视频安全线开启时从视频画幅边缘向外绘制，不能遮住片源最外圈像素或黑边。 */
.stage video.video-safety-outline {
  outline: 2px solid #ff3b4d;
  outline-offset: 0;
}

/* 批量上传归类：一次弹窗逐份确认，文件名与归属选择保持清晰对齐。 */
.upload-placement-wrap { min-width: 0; }
.upload-batch-list { display: grid; gap: 10px; max-height: 48vh; padding: 2px; overflow-y: auto; }
.upload-batch-row { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.035); }
.upload-batch-file { min-width: 0; }
.upload-batch-file b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); font-size: 16px; }
.upload-batch-file span { display: block; margin-top: 3px; color: var(--text-3); font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upload-batch-placement-select { width: 100%; min-width: 0; margin: 0!important; }
@media (max-width: 680px) { .upload-batch-row { grid-template-columns: 1fr; gap: 8px; } }

/* 流程任务：编辑为粉紫色；状态名、备注、保护标识各自占位，长备注可自适应。 */
.flow-edit-btn { background: linear-gradient(135deg,#ff7eb3,#a855f7)!important; border-color: rgba(255,126,179,.55)!important; color: #fff!important; }
.sf-pill.sf-protected { border: 1px solid rgba(255,126,179,.38); }
#flowEditor { display: flex; flex-direction: column; gap: 9px; }
#flowEditor .flow-row { position: relative; display: grid; grid-template-columns: 28px 58px minmax(120px,.8fr) minmax(180px,1.4fr) 38px 34px; gap: 8px; margin: 0; align-items: center; }
#flowEditor .flow-row input { width: 100%; min-width: 0; box-sizing: border-box; }
#flowEditor .flow-order { text-align: center; color: var(--text-3); }
#flowEditor .flow-note-input { color: var(--text-2); }
#flowEditor .flow-move-actions { display: flex; gap: 4px; }
#flowEditor .flow-move-actions .mini-btn-icon { width: 27px; height: 30px; font-size: 14px; }
#flowEditor .flow-move-actions .mini-btn-icon:disabled { opacity: .28; cursor: default; }
#flowEditor .flow-color-wrap { position: relative; width: 38px; height: 34px; }
#flowEditor .flow-color { display: block; width: 38px; height: 34px; padding: 3px; border: 1px solid var(--line); border-radius: 7px; background: var(--bg-3); box-sizing: border-box; cursor: pointer; }
#flowEditor .flow-color>i { display: block; width: 100%; height: 100%; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
#flowEditor .flow-color-panel { position: absolute; top: 39px; right: 0; width: 238px; padding: 5px; border: 1px solid #626272; border-radius: 4px; background: #343434; box-shadow: 0 12px 30px rgba(0,0,0,.55); color: #fff; z-index: 10020; }
#flowEditor .flow-sv { position: relative; display: block; height: 138px; background-image: linear-gradient(to bottom,transparent,#000),linear-gradient(to right,#fff,transparent); cursor: crosshair; touch-action: none; }
#flowEditor .flow-sv>i { position: absolute; width: 11px; height: 11px; border: 3px solid #fff; border-radius: 50%; transform: translate(-50%,-50%); box-shadow: 0 0 0 1px #555; pointer-events: none; }
#flowEditor .flow-color-tools { display: grid; grid-template-columns: 32px 1fr; align-items: center; gap: 8px; padding: 7px 8px 5px; }
#flowEditor .flow-color-tools button { border: 0; background: transparent; color: #fff; font-size: 22px; cursor: pointer; }
#flowEditor .flow-color-tools input { width: 100%; height: 12px; margin: 0; padding: 0; border: 0; border-radius: 6px; background: linear-gradient(to right,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00); appearance: none; -webkit-appearance: none; }
#flowEditor .flow-color-tools input::-webkit-slider-thumb { width: 15px; height: 15px; border: 2px solid #fff; border-radius: 50%; background: transparent; appearance: none; -webkit-appearance: none; }
#flowEditor .flow-color-tools input::-moz-range-thumb { width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: transparent; }
#flowEditor .flow-rgb { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; padding: 0 14px 7px; }
#flowEditor .flow-rgb label { display: grid; gap: 4px; margin: 0; color: #fff; text-align: center; }
#flowEditor .flow-rgb input { width: 100%; height: 32px; margin: 0; padding: 4px; border: 1px solid #777; border-radius: 2px; background: #353535; color: #fff; text-align: center; box-sizing: border-box; }
#flowEditor .flow-rgb b { font-size: 12px; font-weight: 500; }
#flowEditor .flow-color-actions { display: flex; justify-content: flex-end; gap: 7px; padding: 7px 8px 3px; border-top: 1px solid #515151; }
#flowEditor .flow-color-actions button { min-width: 54px; padding: 6px 9px; border: 1px solid #666; border-radius: 4px; background: #454545; color: #fff; cursor: pointer; }
#flowEditor .flow-color-actions [data-color-confirm] { border-color: #ff6cae; background: linear-gradient(135deg,#ff7eb3,#a855f7); }
#flowEditor .flow-name-input { font-weight: 650; }
.q-rename-wrap.np-wrap.task-create-wrap { width: min(720px,94vw) !important; }
.task-create-wrap > .q-rename-header, .task-create-wrap > .task-create-form, .task-create-wrap > .q-rename-actions { width: 100%; box-sizing: border-box; }
.task-create-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; max-height: calc(90vh - 220px); overflow-y: auto; padding: 2px; }
.task-form-wide { grid-column: 1 / -1; }
.task-title-row { display: grid; grid-template-columns: 3fr 1fr; gap: 16px; }
.task-form-field { min-width: 0; margin: 0 !important; padding: 12px; border: 1px solid rgba(255,126,179,.22); border-radius: 12px; background: rgba(0,0,0,.20); }
.task-form-field>b, .task-form-field>legend { display: block; margin-bottom: 8px; color: #f3eaff; font-size: 16px; font-weight: 650; }
.task-create-form input, .task-create-form textarea, .task-create-form select { margin: 0; }
.task-field-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.task-field-head>b { color: #f3eaff; font-size: 16px; font-weight: 650; }
.task-select-all { padding: 4px 10px; }
.task-people-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: nowrap; margin-left:auto; }
.task-auto-all { padding: 4px 10px; }
.task-auto-all.active { color: #fff; border-color: rgba(255,126,179,.72); background: linear-gradient(135deg,rgba(255,126,179,.88),rgba(168,85,247,.88)); box-shadow: 0 0 0 2px rgba(255,126,179,.10); }
.task-people input:disabled { opacity: .72; cursor: default; }
.task-people label:has(input:disabled) { cursor: default; }
.task-people>div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px 10px; max-height: 128px; overflow-y: auto; }
.task-people label, .task-mode label { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--text-2); cursor: pointer; }
.task-people input, .task-mode input { width: 16px; height: 16px; margin: 0; padding: 0; accent-color: #ff7eb3; flex: 0 0 auto; }
.task-mode { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-content: start; gap: 10px 18px; }
.task-mode legend { width: 100%; grid-column:1 / -1; }
.task-mode label>b { color: var(--text); font-weight: 600; }
.task-mode label>span { color: var(--text-3); font-size: 15px; }
.task-form-empty { color: var(--text-3); }
@media(max-width:700px){.task-create-form{grid-template-columns:1fr}.task-form-wide{grid-column:auto}.task-title-row{grid-template-columns:3fr 1fr;gap:8px}.task-mode{grid-template-columns:1fr}.task-people>div:last-child{grid-template-columns:1fr}}
#flowEditor .flow-lock { display: grid; place-items: center; width: 34px; height: 34px; color: #ff8fc7; }
#flowEditor .flow-row-protected { padding: 5px; border: 1px solid rgba(255,126,179,.22); border-radius: 9px; background: rgba(255,126,179,.05); }
@media(max-width:700px){#flowEditor .flow-row{grid-template-columns:24px 58px minmax(0,1fr) 38px 32px}#flowEditor .flow-name-input{grid-column:3/4}#flowEditor .flow-note-input{grid-column:3/5}.flow-row-protected .flow-lock{grid-row:1/3;grid-column:5}.flow-row:not(.flow-row-protected)>[data-del]{grid-row:1/3;grid-column:5}}

/* 仅推送上级状态确认框按较长提示词自适应加宽，其他全站确认框保持原尺寸。 */
.dialog-card.status-push-confirm-card { width: max-content; min-width: min(560px, 92vw); max-width: 92vw; box-sizing: border-box; }
.dialog-card.status-push-confirm-card .dialog-body { max-width: 720px; }

/* 文件名后的最新版本号：列表和平铺共用，不改变既有列宽。 */
.media-version-separator { color: var(--text-3); font-weight: 400; }
.media-version-label { color: #ff8fc7; font-size: .9em; font-weight: 650; white-space: nowrap; }

/* 上下级小组的排期/公告同步弹窗。 */
.q-rename-wrap.parent-copy-wrap, .q-rename-wrap.parent-task-sync-wrap { width: min(620px, 92vw); }
.parent-copy-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; overflow: visible; padding-bottom: 10px; }
.parent-copy-option { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 10px; margin: 0; padding: 12px; border: 1px solid rgba(255,126,179,.22); border-radius: 10px; background: rgba(0,0,0,.18); cursor: pointer; }
.parent-copy-option input, .parent-task-check input, .parent-task-select-all input { width: 17px; height: 17px; margin: 3px 0 0; accent-color: #ff7eb3; flex: 0 0 auto; }
.parent-copy-option span, .parent-task-check span { display: grid; gap: 4px; min-width: 0; }
.parent-copy-option small, .parent-task-check small { color: var(--text-3); line-height: 1.45; }
.parent-shift-fields { display: none; grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 130px)); justify-content: center; align-items: center; gap: 14px; padding: 7px 12px 12px; overflow: visible; }
.parent-shift-fields.active { display: grid; }
.parent-shift-fields label { display: grid; grid-template-columns: minmax(0, 92px) auto; align-items: center; gap: 6px; margin: 0; color: var(--text-2); white-space: nowrap; }
.parent-shift-fields input { width: 92px; min-width: 0; height: 42px; box-sizing: border-box; margin: 0; padding: 7px 9px; line-height: 1.2; overflow: visible; }
.parent-task-sync-body { gap: 9px; }
.parent-task-select-all { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--text-2); }
.parent-task-options { display: grid; gap: 8px; max-height: min(46vh, 420px); overflow-y: auto; padding-right: 3px; }
.parent-task-option { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 10px; margin: 0; padding: 11px 12px; border: 1px solid rgba(255,126,179,.22); border-radius: 10px; background: rgba(0,0,0,.18); }
.parent-task-check { display: flex; align-items: flex-start; gap: 10px; min-width: 0; cursor: pointer; }
.parent-task-edit-fields { grid-column: 1 / -1; display: grid; gap: 8px; }
.parent-task-edit-fields.hidden { display: none; }
.parent-task-edit-fields input, .parent-task-edit-fields textarea { width: 100%; box-sizing: border-box; margin: 0; }
.ws-panel-head-actions { display: flex; align-items: center; gap: 8px; }
.tk-actions { display: flex; align-items: center; gap: 7px; }
@media(max-width:700px){.parent-copy-body{grid-template-columns:1fr}.parent-shift-fields{grid-template-columns:repeat(3,minmax(0,1fr));padding-inline:0}.parent-shift-fields label{grid-template-columns:minmax(0,1fr) auto}.parent-shift-fields input{width:100%}.ws-panel-head-actions{gap:5px}.ws-panel-head-actions .ghost-btn,.ws-panel-head-actions .primary-btn{padding-inline:8px}}

/* 公告通知：独立视觉系统，只作用于公告板块及其两个弹窗。 */
#wsTasks {
  padding: 0 0 18px;
  overflow: hidden;
  background: rgba(0, 0, 0, .32);
  border: 1px solid rgba(124, 58, 237, .22);
  box-shadow: 0 4px 22px rgba(124, 58, 237, .10);
}
.announcement-sync-btn, .announcement-add-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  padding: 6px 9px;
  border-radius: 11px;
  border: 1px solid transparent;
  color: #ffeaf8;
  background: linear-gradient(110deg, #f472b6, #a855f7);
  box-shadow: 0 8px 20px rgba(177, 73, 211, .24);
  font-size: 18px;
  line-height: 1;
  text-align: center;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, filter .16s ease;
}
.announcement-sync-btn:hover, .announcement-add-btn:hover { transform: translateY(-1px); filter: brightness(1.08); box-shadow: 0 10px 24px rgba(177, 73, 211, .3); }
.announcement-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 18px 12px;
}
.announcement-summary:has(.announcement-sync-btn.hidden) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.announcement-summary-card {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  min-height: 50px;
  padding: 6px 9px;
  border: 1px solid rgba(124, 58, 237, .18);
  border-radius: 11px;
  background: rgba(0, 0, 0, .32);
}
.announcement-summary-card > span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; font-size: 15px; font-weight: 800; }
.announcement-summary-card > div { display: grid; gap: 1px; }
.announcement-summary-card b { color: #fff; font-size: 17px; line-height: 1; }
.announcement-summary-card small { color: #9b94aa; font-size: 12px; }
.announcement-summary-card.summary-total > span { color: #ffb5d8; background: rgba(244, 114, 182, .14); }
.announcement-summary-card.summary-active > span { color: #c4a2ff; background: rgba(168, 85, 247, .15); }
.announcement-summary-card.summary-done > span { color: #70e6c2; background: rgba(45, 212, 191, .13); }
#wsTasks .task-list { gap: 12px; margin: 0 18px; }
#wsTasks .task-item {
  position: relative;
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  opacity: 1;
  border: 1px solid rgba(206, 177, 228, .14) !important;
  border-radius: 14px;
  background: rgba(0, 0, 0, .32) !important;
  box-shadow: 0 8px 24px rgba(4, 3, 17, .16);
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
#wsTasks .task-item::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(#ff8fc7, #a855f7); }
#wsTasks .task-item:hover { transform: translateY(-1px); border-color: rgba(255, 126, 179, .34) !important; box-shadow: 0 12px 28px rgba(7, 4, 24, .24); }
#wsTasks .task-item.done::before { background: #45d4b0; }
#wsTasks .task-item.done .tk-title { text-decoration: none; }
.tk-status-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 16px 9px;
  border-right: 1px solid rgba(255, 255, 255, .055);
  background: rgba(255, 255, 255, .018);
}
.tk-check-control { position: relative; width: 27px; height: 27px; margin: 0; cursor: pointer; }
.tk-check-control .tk-check { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.tk-check-ui { display: grid; place-items: center; width: 27px; height: 27px; border: 2px solid rgba(255, 143, 199, .62); border-radius: 9px; background: rgba(10, 10, 25, .52); transition: .16s ease; }
.tk-check:checked + .tk-check-ui { border-color: #4fd8b5; background: linear-gradient(145deg, #55d9b8, #24a98b); box-shadow: 0 0 16px rgba(79, 216, 181, .22); }
.tk-check:checked + .tk-check-ui::after { content: "✓"; color: #071c17; font-size: 17px; font-weight: 900; }
.tk-status-text { color: #d9a8c7; font-size: 12px; white-space: nowrap; }
.task-item.done .tk-status-text { color: #6ddcbd; }
#wsTasks .tk-main { padding: 15px 17px 13px; }
.tk-title-row { display: flex; align-items: center; gap: 11px; min-width: 0; }
#wsTasks .tk-title { flex: 0 1 auto; max-width: 52%; min-width: 0; padding: 5px 0; border: 0; border-radius: 0; color: #ffb6d9; background: transparent; font-size: 17px; font-weight: 750; line-height: 1.35; overflow-wrap: anywhere; }
.tk-title-time { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 12px; min-width: 0; color: #95899f; font-size: 13px; font-weight: 500; }
.tk-title-time span { padding: 5px 9px; border: 1px solid rgba(255,255,255,.09); border-radius: 8px; background: rgba(255,255,255,.025); white-space: nowrap; }
.ws-tab[data-tab="tasks"] { position: relative; }
.ws-tab[data-tab="tasks"].has-unconfirmed-announcement::after { content:""; position:absolute; top:5px; right:5px; width:8px; height:8px; border-radius:50%; background:#ff3b30; box-shadow:0 0 0 2px var(--bg-2); }
.task-details-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.announcement-editor-toolbar { display:flex; align-items:center; justify-content:flex-end; gap:6px; margin:0 0 0 auto; }
.announcement-editor-toolbar button,.announcement-editor-toolbar label { display:grid; place-items:center; width:32px; height:30px; padding:0; border:1px solid rgba(255,143,199,.22); border-radius:7px; color:var(--text); background:rgba(8,7,19,.38); cursor:pointer; }
.announcement-editor-toolbar input[type="color"] { width:24px!important; height:24px!important; padding:1px!important; border:0!important; background:transparent!important; cursor:pointer; }
html:not(.mobile-ui) .announcement-text-color-control { position:relative; display:inline-grid; flex:0 0 auto; }
html:not(.mobile-ui) .announcement-editor-toolbar .announcement-text-color-open { width:32px; height:30px; }
html:not(.mobile-ui) .announcement-text-color-open > i { display:block; width:19px; height:19px; border:1px solid rgba(255,255,255,.7); border-radius:3px; background:#000; box-shadow:0 0 0 2px rgba(0,0,0,.55); }
html:not(.mobile-ui) .announcement-text-color-panel { position:absolute; z-index:80; top:35px; right:0; display:block; width:242px; padding:4px 4px 9px; border:1px solid #686868; border-radius:3px; background:#454545; box-shadow:0 12px 28px rgba(0,0,0,.48); color:#fff; }
html:not(.mobile-ui) .announcement-text-color-panel[hidden] { display:none; }
html:not(.mobile-ui) .announcement-color-sv { position:relative; display:block; width:232px; height:140px; overflow:hidden; background-color:hsl(0 100% 50%); background-image:linear-gradient(to top,#000,transparent),linear-gradient(to right,#fff,transparent); cursor:crosshair; touch-action:none; }
html:not(.mobile-ui) .announcement-color-sv > i { position:absolute; width:11px; height:11px; border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 1px #111; transform:translate(-50%,-50%); pointer-events:none; }
html:not(.mobile-ui) .announcement-color-tools { display:flex; align-items:center; gap:8px; height:38px; padding:5px 6px 3px; }
html:not(.mobile-ui) .announcement-editor-toolbar .announcement-color-tools > button { flex:0 0 auto; width:20px; height:24px; border:0; border-radius:3px; background:transparent; color:#fff; font-size:19px; }
html:not(.mobile-ui) .announcement-editor-toolbar .announcement-color-tools > button:hover { background:rgba(255,255,255,.1); }
html:not(.mobile-ui) .announcement-color-preview { flex:0 0 28px; width:28px; height:28px; border:1px solid #cfcfcf; border-radius:50%; background:#000; }
html:not(.mobile-ui) .announcement-color-tools input[type="range"] { flex:1 1 auto; width:auto; min-width:0; height:12px; padding:0; border:0; border-radius:0; background:linear-gradient(90deg,#f00,#ff0,#0f0,#0ff,#00f,#f0f,#f00); appearance:none; cursor:pointer; }
html:not(.mobile-ui) .announcement-color-tools input[type="range"]::-webkit-slider-thumb { width:12px; height:18px; border:2px solid #fff; border-radius:6px; background:transparent; box-shadow:0 0 0 1px rgba(0,0,0,.65); appearance:none; }
html:not(.mobile-ui) .announcement-color-rgb { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; padding:1px 16px 7px; }
html:not(.mobile-ui) .announcement-editor-toolbar .announcement-color-rgb label { display:grid; grid-template-rows:32px 18px; place-items:center; width:auto; height:auto; border:0; border-radius:0; background:transparent; cursor:default; }
html:not(.mobile-ui) .announcement-color-rgb input { width:100%; height:32px; padding:3px 4px; border:1px solid #858585; border-radius:1px; outline:0; background:#444; color:#fff; font-size:13px; text-align:center; }
html:not(.mobile-ui) .announcement-color-rgb input:focus { border-color:#f48ac0; }
html:not(.mobile-ui) .announcement-color-rgb b { font-size:12px; font-weight:500; }
html:not(.mobile-ui) .announcement-color-actions { display:flex; justify-content:center; margin:0 -4px -9px; padding:8px 8px 9px; border-top:1px solid #5c5c5c; background:#454545; }
html:not(.mobile-ui) .announcement-editor-toolbar .announcement-color-actions .announcement-color-confirm { width:92px; height:29px; border:1px solid rgba(255,143,199,.7); border-radius:6px; background:linear-gradient(135deg,#f472b6,#a855f7); color:#fff; font-size:13px; font-weight:700; }
.announcement-rich-editor { min-height:104px; margin-top:7px; padding:10px 12px; overflow:auto; border:1px solid rgba(255,143,199,.19); border-radius:8px; background:rgba(8,7,19,.38); color:var(--text); font-size:15px; line-height:1.55; outline:none; }
.announcement-rich-editor:focus { border-color:var(--accent); }
.announcement-rich-editor:empty::before { content:attr(data-placeholder); color:var(--text-3); pointer-events:none; }
#wsTasks .tk-detail { margin: 9px 0 11px; padding: 9px 11px; border-left: 2px solid rgba(168, 85, 247, .5); border-radius: 0 8px 8px 0; color: #cfc3d7; background: rgba(8, 7, 20, .22); font-size: 15px; line-height: 1.55; }
#wsTasks .task-image-strip { display:flex; align-items:center; gap:8px; width:100%; margin:9px 0 11px; padding:2px 0 5px; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; }
#wsTasks .task-image-thumb { flex:0 0 76px; width:76px; height:76px; padding:0; overflow:hidden; border:1px solid rgba(255,143,199,.26); border-radius:10px; background:rgba(8,7,20,.45); cursor:zoom-in; transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease; }
#wsTasks .task-image-thumb:hover,#wsTasks .task-image-thumb:focus-visible { transform:translateY(-1px); border-color:rgba(255,143,199,.68); box-shadow:0 7px 18px rgba(5,3,16,.32); outline:none; }
#wsTasks .task-image-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.announcement-image-field.dragover { border-color:rgba(255,143,199,.72); background:rgba(244,114,182,.09); }
.announcement-image-field .task-field-head span { color:var(--text-3); font-size:13px; }
.announcement-image-editor-row { display:flex; align-items:center; gap:10px; min-width:0; }
.announcement-image-previews { display:flex; align-items:center; gap:7px; min-width:0; overflow-x:auto; padding:2px 0; }
.announcement-image-preview { position:relative; flex:0 0 62px; width:62px; height:62px; overflow:visible; border:1px solid rgba(255,143,199,.24); border-radius:9px; background:rgba(8,7,20,.45); }
.announcement-image-preview img { display:block; width:100%; height:100%; object-fit:cover; border-radius:8px; }
.announcement-image-preview button { position:absolute; top:-6px; right:-6px; display:grid; place-items:center; width:21px; height:21px; padding:0; border:1px solid rgba(255,255,255,.28); border-radius:50%; color:#fff; background:#b73d71; font-size:15px; line-height:1; cursor:pointer; }
.announcement-image-pick { flex:0 0 auto; white-space:nowrap; }
.announcement-image-field > small { display:block; margin-top:7px; color:var(--text-3); font-size:12px; }
.modal.announcement-image-modal { width:min(94vw,1200px); max-width:none; }
.modal.announcement-image-modal .modal-card { width:100%; max-width:none; padding:0; border:0; background:transparent; box-shadow:none; }
.announcement-image-viewer { position:relative; display:grid; place-items:center; width:100%; min-height:min(82vh,820px); padding:42px 64px 34px; border:1px solid rgba(255,143,199,.28); border-radius:18px; background:rgba(7,6,16,.96); box-shadow:0 28px 90px rgba(0,0,0,.62); }
.announcement-image-stage { position:absolute; inset:48px 64px 38px; display:grid; place-items:center; overflow:hidden; border-radius:10px; cursor:grab; touch-action:none; user-select:none; }
.announcement-image-stage.is-dragging { cursor:grabbing; }
.announcement-image-stage > img { display:block; max-width:100%; max-height:100%; object-fit:contain; border-radius:9px; transform-origin:center; will-change:transform; user-select:none; }
.announcement-image-close,.announcement-image-nav { position:absolute; z-index:1; display:grid; place-items:center; padding:0; border:1px solid rgba(255,255,255,.18); color:#fff; background:rgba(28,23,42,.86); cursor:pointer; }
.announcement-image-close { top:12px; right:12px; width:36px; height:36px; border-radius:50%; font-size:25px; }
.announcement-image-nav { top:50%; width:42px; height:58px; border-radius:11px; font-size:39px; transform:translateY(-50%); }
.announcement-image-prev { left:12px; }
.announcement-image-next { right:12px; }
.announcement-image-tools { position:absolute; z-index:2; top:11px; left:50%; display:flex; align-items:center; gap:5px; padding:4px 6px; border:1px solid rgba(255,255,255,.14); border-radius:10px; background:rgba(28,23,42,.9); transform:translateX(-50%); }
.announcement-image-tools button { min-width:31px; height:28px; padding:0 8px; border:1px solid rgba(255,255,255,.14); border-radius:7px; color:#fff; background:rgba(255,255,255,.06); font-size:16px; cursor:pointer; }
.announcement-image-tools button:hover { border-color:rgba(255,143,199,.55); background:rgba(255,126,179,.13); }
.announcement-image-tools span { min-width:48px; color:#eee3f4; font-size:12px; text-align:center; }
.announcement-image-count { position:absolute; bottom:10px; left:50%; padding:5px 10px; border-radius:999px; color:#eee3f4; background:rgba(0,0,0,.52); font-size:13px; transform:translateX(-50%); }
.tk-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.tk-title-row + .tk-info-grid { margin-top: 12px; }
.tk-info-grid > span { display: flex; align-items: center; gap: 7px; min-width: 0; padding: 7px 9px; border: 1px solid rgba(255, 255, 255, .055); border-radius: 8px; background: rgba(255, 255, 255, .025); white-space: nowrap; }
.tk-info-grid i { flex: 0 0 auto; color: #8f839c; font-size: 11px; font-style: normal; white-space: nowrap; }
.tk-info-grid b { min-width: 0; overflow: hidden; color: #e8deed; font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.tk-info-grid .tk-mode { flex: 0 1 auto; padding: 1px 7px; font-size: 12px; }
#wsTasks .mode-or { color: #d4b6ff; background: rgba(168, 85, 247, .14); }
#wsTasks .mode-and { color: #ffd08a; background: rgba(245, 158, 11, .13); }
.tk-people-row { display: flex; align-items: center; gap: 9px; min-width: 0; margin-top: 9px; padding-top: 9px; border-top: 1px solid rgba(255, 255, 255, .055); }
.tk-people-row i { flex: 0 0 auto; color: #8f839c; font-size: 12px; font-style: normal; }
.tk-people-row b { min-width: 0; overflow: hidden; color: #d8cbdc; font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.tk-people-row .tk-person.confirmed { color:#8ce0b4; }
.tk-people-row .tk-person.unconfirmed { color:#fff; }
.tk-people-row .tk-person-sep { color:#8f839c; }
#wsTasks .tk-actions { display: flex; flex-direction: column; justify-content: center; gap: 8px; min-width: 76px; padding: 13px; border-left: 1px solid rgba(255, 255, 255, .055); }
#wsTasks .tk-action { min-height: 32px; padding: 6px 11px; border: 1px solid rgba(255, 255, 255, .09); border-radius: 9px; color: #cfc3d7; background: rgba(255, 255, 255, .035); font-size: 13px; cursor: pointer; white-space: nowrap; transition: .15s ease; }
#wsTasks .tk-edit { color: #ffb6d9; border-color: rgba(255, 126, 179, .26); background: rgba(244, 114, 182, .08); }
#wsTasks .tk-action:hover { color: #fff; border-color: rgba(255, 126, 179, .45); background: rgba(255, 126, 179, .13); }
#wsTasks .tk-del:hover { color: #ff9aaf; border-color: rgba(255, 90, 120, .36); background: rgba(255, 77, 109, .08); }
.announcement-empty { display: grid; justify-items: center; gap: 6px; padding: 42px 20px; border: 1px dashed rgba(255, 126, 179, .22); border-radius: 14px; color: #aa9db6; background: rgba(255, 255, 255, .018); text-align: center; }
.announcement-empty > span { font-size: 31px; }
.announcement-empty b { color: #eee2f1; font-size: 17px; }
.announcement-empty small { color: #978a9f; font-size: 13px; }

.q-rename-wrap.parent-task-sync-wrap, .q-rename-wrap.task-create-wrap {
  background: radial-gradient(circle at 100% 0, rgba(168, 85, 247, .17), transparent 34%), linear-gradient(180deg, #271b32, #171523);
  border-color: rgba(255, 126, 179, .38);
  box-shadow: 0 28px 80px rgba(3, 2, 12, .55);
}
.parent-task-sync-wrap .q-rename-title { color: #fff2fa; }
.parent-task-sync-wrap .parent-task-select-all { justify-self: start; padding: 6px 10px; border-radius: 9px; background: rgba(255, 126, 179, .08); }
.parent-task-sync-wrap .parent-task-option { border-color: rgba(255, 126, 179, .16); background: rgba(8, 7, 19, .25); transition: border-color .15s ease, background .15s ease; }
.parent-task-sync-wrap .parent-task-option:hover, .parent-task-sync-wrap .parent-task-option:has(.parent-task-check input:checked) { border-color: rgba(255, 126, 179, .42); background: rgba(244, 114, 182, .07); }
.parent-task-sync-wrap .parent-task-edit-btn { color: #ffabd2; border-color: rgba(255, 126, 179, .25); background: rgba(255, 126, 179, .07); }
.parent-task-sync-wrap .parent-task-edit-fields input, .parent-task-sync-wrap .parent-task-edit-fields textarea,
.task-create-wrap .task-create-form input, .task-create-wrap .task-create-form textarea, .task-create-wrap .task-create-form select { border-color: rgba(255, 143, 199, .19); background: rgba(8, 7, 19, .38); }
.task-create-wrap .task-form-field { border-color: rgba(255, 143, 199, .16); background: rgba(255, 255, 255, .02); }
.task-create-wrap .task-form-field > b, .task-create-wrap .task-form-field legend, .task-create-wrap .task-field-head b { color: #f5e9f3; }

@media (max-width: 640px) {
  #wsTasks { padding-bottom: 12px; }
  .announcement-summary { margin: 12px; gap: 6px; }
  .announcement-summary-card { justify-content: center; min-height: 48px; padding: 6px 3px; }
  .announcement-summary-card > span { display: none; }
  .announcement-summary-card > div { justify-items: center; text-align: center; }
  .announcement-summary-card b { font-size: 15px; }
  .announcement-summary-card small { font-size: 10px; white-space: nowrap; }
  .announcement-sync-btn, .announcement-add-btn { min-height: 48px; padding-inline: 3px; font-size: 12px; }
  #wsTasks .task-list { margin: 0 12px; }
  #wsTasks .task-item { grid-template-columns: 58px minmax(0, 1fr); }
  .tk-status-col { grid-row: 1 / 3; padding-inline: 6px; }
  #wsTasks .tk-main { padding: 13px 12px 10px; }
  #wsTasks .tk-actions { grid-column: 2; flex-direction: row; justify-content: flex-end; min-width: 0; padding: 0 12px 12px; border-left: 0; }
  .tk-title-row { align-items: flex-start; flex-direction: column; gap: 6px; }
  #wsTasks .tk-title { max-width: 100%; font-size: 16px; }
  #wsTasks .task-image-thumb { flex-basis:68px; width:68px; height:68px; }
  .announcement-image-viewer { min-height:74vh; padding:48px 12px 38px; }
  .announcement-image-stage { inset:52px 12px 48px; }
  .announcement-image-tools { top:10px; }
  .announcement-image-nav { top:auto; bottom:8px; width:38px; height:34px; font-size:28px; transform:none; }
  .announcement-image-prev { left:12px; }
  .announcement-image-next { right:12px; }
  .tk-title-time { font-size: 12px; }
  .tk-info-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tk-info-grid > span { gap: 4px; padding: 6px 5px; }
  .tk-info-grid i { font-size: 10px; }
  .tk-info-grid b, .tk-info-grid .tk-mode { font-size: 11px; }
}

/* 文件夹标题负责“全部素材”；折叠后可点击箭头或折叠栏展开。 */
.folder-tree .ft-head { cursor: default; }
.folder-tree .ft-head-title { cursor: pointer; padding: 3px 5px; border-radius: 6px; }
.folder-tree .ft-head-title:hover, .folder-tree .ft-head-title:focus-visible { color: var(--accent); background: rgba(255, 126, 179, .09); outline: none; }
.folder-tree.collapsed .ft-head-actions { width: 100%; height: 100%; }

/* 视频进度条采用确定的三层结构：底轨 < 缓冲层 < 已播放层与粉色圆点。 */
.seek-wrap { box-sizing: border-box; padding-left: 7px; padding-right: 7px; }
.seek-wrap::before { content: ''; position: absolute; left: 7px; right: 7px; top: 50%; height: 4px; transform: translateY(-50%); z-index: 0; border-radius: 999px; background: var(--bg-3); pointer-events: none; }
.seek-buffer { position: absolute; left: 7px; right: 7px; top: 50%; height: 4px; transform: translateY(-50%); z-index: 1; overflow: hidden; border-radius: 999px; pointer-events: none; }
.seek { --seek-played: 0%; position: relative; z-index: 2; flex: 1; min-width: 0; height: 18px; margin: 0; padding: 0; border: 0; outline: 0; background: transparent; appearance: none; -webkit-appearance: none; }
.seek::-webkit-slider-runnable-track { height: 4px; border: 0; border-radius: 999px; background: linear-gradient(to right, var(--accent) 0 var(--seek-played), transparent var(--seek-played) 100%); }
.seek::-webkit-slider-thumb { width: 14px; height: 14px; margin-top: -5px; border: 0; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px rgba(255,126,179,.14); appearance: none; -webkit-appearance: none; }
.seek::-moz-range-track { height: 4px; border: 0; border-radius: 999px; background: transparent; }
.seek::-moz-range-progress { height: 4px; border-radius: 999px; background: var(--accent); }
.seek::-moz-range-thumb { width: 14px; height: 14px; border: 0; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 2px rgba(255,126,179,.14); }
.seek-buffer-segment { position: absolute; top: 0; bottom: 0; display: block; background: rgba(255,255,255,.38); box-shadow: 0 0 5px rgba(255,255,255,.16); }

/* 电脑版审阅控制行与下方画笔工具行统一按钮尺寸、间距和左右边界。 */
@media (min-width: 769px) {
  #reviewStage .controls { gap: 6px; padding: 3px 12px !important; }
  #reviewStage .controls .ctrl-btn { width: 30px; height: 30px; flex: 0 0 30px; padding: 0; font-size: 17px; }
  #reviewStage .controls #abLoopBtn { min-width: 30px; width: 30px; padding: 0; }
  #reviewStage .controls .speed { width: 64px; height: 30px; padding-top: 0; padding-bottom: 0; }
  #reviewStage .controls .vol-wrap { gap: 6px; }
  #reviewStage .controls .vol-slider { width: 64px; }
}

/* 本轮：所选文件批量工具栏随素材页滚动吸顶；候选版本元信息保持清晰。 */
#wsAssets #batchToolbar { position: sticky; top: 0; z-index: 35; backdrop-filter: blur(12px); }
.av-meta { line-height: 1.55; }

/* 迁移后：首页小耳朵弹窗设置独立成页，仅影响「站点设置 → 首页弹窗」。 */
.home-notice-settings { display: grid; gap: 18px; }
.home-notice-settings-head { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.home-notice-settings-head h3 { margin: 0 0 8px; font-size: 21px; }
.home-notice-settings-head p { margin: 0; color: var(--text-2); line-height: 1.7; }
.home-notice-switch { flex: 0 0 min(320px, 42%); margin: 0; }
.home-notice-preview, .home-notice-frequency { padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.home-notice-preview > span { display: block; margin-bottom: 10px; color: var(--text-2); font-size: 14px; }
.home-notice-preview > p { margin: 0; padding: 18px 20px; border: 1px solid rgba(255,126,179,.28); border-radius: 14px; background: var(--bg-3); color: var(--text); font-size: 17px; font-weight: 700; line-height: 1.7; text-align: center; }
.home-notice-frequency h4 { margin: 0 0 14px; }
.home-notice-frequency > label { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: 12px; cursor: pointer; }
.home-notice-frequency > label:hover { background: var(--bg-3); }
.home-notice-frequency input { width: auto; margin-top: 4px; }
.home-notice-frequency span { display: grid; gap: 5px; }
.home-notice-frequency small { color: var(--text-2); line-height: 1.55; }
.home-notice-actions { display: flex; justify-content: flex-end; }
@media (max-width: 760px) {
  .home-notice-settings-head { align-items: stretch; flex-direction: column; }
  .home-notice-switch { flex-basis: auto; }
}

/* 本轮：风险管理围读小组表只压缩短字段，把剩余宽度完整留给小组名。 */
#bossView .risk-groups-table { table-layout:fixed!important; }
#bossView .risk-groups-table th:nth-child(1),#bossView .risk-groups-table td:nth-child(1) { width:50px!important; }
#bossView .risk-groups-table th:nth-child(2),#bossView .risk-groups-table td:nth-child(2) { width:auto!important; }
#bossView .risk-groups-table th:nth-child(3),#bossView .risk-groups-table td:nth-child(3) { width:96px!important; }
#bossView .risk-groups-table th:nth-child(4),#bossView .risk-groups-table td:nth-child(4) { width:92px!important; }
#bossView .risk-groups-table th:nth-child(5),#bossView .risk-groups-table td:nth-child(5) { width:92px!important; }
#bossView .risk-groups-table th:nth-child(6),#bossView .risk-groups-table td:nth-child(6) { width:72px!important; }
#bossView .risk-groups-table th:nth-child(7),#bossView .risk-groups-table td:nth-child(7) { width:132px!important; }
#bossView .risk-groups-table th:nth-child(8),#bossView .risk-groups-table td:nth-child(8) { width:220px!important; }

/* 本轮：流量空间按内容自适应列宽，用户/小组切换放在原排序标题位置。 */
.traffic-unit-switch { display:inline-flex; align-items:center; gap:6px; }
.traffic-unit-switch .active { color:#fff; border-color:var(--accent); background:rgba(255,126,179,.16); }
#bossView #trTable.traffic-space-table { width:100%!important; min-width:0!important; table-layout:auto!important; }
#bossView #trTable.traffic-space-table th,#bossView #trTable.traffic-space-table td { width:auto!important; min-width:0!important; max-width:none!important; white-space:nowrap; }
#bossView #trTable.traffic-user-table th:nth-child(2),#bossView #trTable.traffic-user-table td:nth-child(2) { max-width:210px!important; }
#bossView #trTable.traffic-user-table th:nth-child(4),#bossView #trTable.traffic-user-table td:nth-child(4) { max-width:180px!important; }
#bossView #trTable.traffic-space-table th:last-child,#bossView #trTable.traffic-space-table td:last-child { width:1%!important; min-width:88px!important; white-space:nowrap!important; }

/* 本轮：两张后台表严格收在既有内容宽度内，短分类按标题宽度分配。 */
#bossView #trTable.traffic-space-table { width:100%!important; max-width:100%!important; min-width:0!important; table-layout:fixed!important; }
#bossView #trTable.traffic-space-table th,#bossView #trTable.traffic-space-table td { min-width:0!important; max-width:none!important; overflow:hidden!important; text-overflow:ellipsis; white-space:nowrap; }
#bossView #trTable.traffic-user-table th:nth-child(1),#bossView #trTable.traffic-user-table td:nth-child(1){width:10% !important}
#bossView #trTable.traffic-user-table th:nth-child(2),#bossView #trTable.traffic-user-table td:nth-child(2){width:18% !important}
#bossView #trTable.traffic-user-table th:nth-child(3),#bossView #trTable.traffic-user-table td:nth-child(3){width:10% !important}
#bossView #trTable.traffic-user-table th:nth-child(4),#bossView #trTable.traffic-user-table td:nth-child(4){width:9% !important}
#bossView #trTable.traffic-user-table th:nth-child(5),#bossView #trTable.traffic-user-table td:nth-child(5){width:7% !important}
#bossView #trTable.traffic-user-table th:nth-child(6),#bossView #trTable.traffic-user-table td:nth-child(6),
#bossView #trTable.traffic-user-table th:nth-child(7),#bossView #trTable.traffic-user-table td:nth-child(7),
#bossView #trTable.traffic-user-table th:nth-child(8),#bossView #trTable.traffic-user-table td:nth-child(8){width:5% !important}
#bossView #trTable.traffic-user-table th:nth-child(9),#bossView #trTable.traffic-user-table td:nth-child(9){width:8% !important}
#bossView #trTable.traffic-user-table th:nth-child(10),#bossView #trTable.traffic-user-table td:nth-child(10){width:9% !important}
#bossView #trTable.traffic-user-table th:nth-child(11),#bossView #trTable.traffic-user-table td:nth-child(11){width:9% !important;min-width:0!important}

/* 本轮仅电脑端：实时监控切到“小组”后固定收在后台内容区内。 */
html:not(.mobile-ui) #bossView .contained-table-wrap:has(#trTable.traffic-group-table){width:100%!important;max-width:100%!important;min-width:0!important;overflow-x:hidden!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th,
html:not(.mobile-ui) #bossView #trTable.traffic-group-table td{min-width:0!important;max-width:none!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;padding-left:8px!important;padding-right:8px!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(1),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(1){width:18%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(2),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(2){width:15%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(3),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(3){width:14%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(4),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(4){width:17%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(5),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(5){width:7%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(6),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(6){width:7%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(7),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(7){width:12%!important}
html:not(.mobile-ui) #bossView #trTable.traffic-group-table th:nth-child(8),html:not(.mobile-ui) #bossView #trTable.traffic-group-table td:nth-child(8){width:10%!important;min-width:0!important;white-space:nowrap!important}

#bossView .risk-groups-table { width:100%!important; max-width:100%!important; table-layout:fixed!important; }
#bossView .risk-groups-table th:nth-child(1),#bossView .risk-groups-table td:nth-child(1){width:44px!important}
#bossView .risk-groups-table th:nth-child(2),#bossView .risk-groups-table td:nth-child(2){width:17%!important}
#bossView .risk-groups-table th:nth-child(3),#bossView .risk-groups-table td:nth-child(3){width:132px!important}
#bossView .risk-groups-table th:nth-child(4),#bossView .risk-groups-table td:nth-child(4){width:96px!important}
#bossView .risk-groups-table th:nth-child(5),#bossView .risk-groups-table td:nth-child(5){width:112px!important}
#bossView .risk-groups-table th:nth-child(6),#bossView .risk-groups-table td:nth-child(6){width:72px!important}
#bossView .risk-groups-table th:nth-child(7),#bossView .risk-groups-table td:nth-child(7){width:158px!important}
#bossView .risk-groups-table th:nth-child(8),#bossView .risk-groups-table td:nth-child(8){width:220px!important}

/* 首页动态中的用户名、文件、公告与状态使用不同强调色。 */
#hubActivityFeed .act-actor{color:#ff8fc7!important;font-weight:700}
#hubActivityFeed .act-file{color:#c084fc!important;font-weight:600}
#hubActivityFeed .act-notice{color:#ffd166!important;font-weight:700}
#hubActivityFeed .act-status{color:#ff8a4c!important;font-weight:700}

/* 端切换是全站顶栏控件，首屏临时样式移除后仍保持粉紫效果。 */
.device-mode-switch{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;gap:2px!important;padding:3px!important;border:1px solid rgba(255,143,199,.34)!important;border-radius:999px!important;background:rgba(20,16,34,.78)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02)!important}
.device-mode-switch button{min-width:62px!important;height:28px!important;padding:0 10px!important;border:0!important;border-radius:999px!important;background:transparent!important;color:#9c93ad!important;font-size:13px!important;cursor:pointer!important;appearance:none!important;-webkit-appearance:none!important}
.device-mode-switch button.active{color:#fff!important;background:linear-gradient(135deg,#ff7eb3,#8b5cf6)!important;box-shadow:0 3px 12px rgba(139,92,246,.38),inset 0 0 0 1px rgba(255,255,255,.16)!important}
html.mobile-preview-frame .device-mode-switch{display:none!important}

/* 手机在登录页切到电脑端时，登录表单仍按手机尺寸显示，并始终保留切回手机端的入口。 */
html.desktop-on-mobile.device-auth-visible .topbar{
  position:fixed!important;top:0!important;left:0!important;right:0!important;z-index:1201!important;
  height:54px!important;min-height:54px!important;padding:0!important;border:0!important;
  background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;pointer-events:none!important;
}
html.desktop-on-mobile.device-auth-visible .topbar>*:not(.device-mode-switch){visibility:hidden!important;pointer-events:none!important}
html.desktop-on-mobile.device-auth-visible .device-mode-switch{
  visibility:visible!important;display:inline-flex!important;position:fixed!important;
  top:max(10px,env(safe-area-inset-top,0px))!important;left:50%!important;right:auto!important;
  transform:translateX(-50%)!important;z-index:1202!important;pointer-events:auto!important;
}

/* 本轮：流量空间新增“播放分发”监控；全部样式限定在该页面，不影响现有实时监控和上传记录。 */
.playback-monitor { display:grid; gap:14px; min-width:0; }
.playback-monitor-toolbar { display:flex; align-items:center; gap:12px; min-width:0; padding:2px 0; }
.playback-monitor-toolbar .dt-spacer { flex:1 1 auto; }
.playback-overview { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; min-width:0; }
.playback-overview .do-tr-card { min-width:0; padding:15px 13px; }
.playback-overview .do-tr-val { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:22px; }
.playback-overview .do-tr-lab { white-space:nowrap; }
.playback-overview .do-tr-icon { flex:0 0 36px; width:36px; height:36px; display:grid; place-items:center; border-radius:11px; color:#fff; font-size:16px; }
.playback-overview .pb-live { background:linear-gradient(135deg,#ff7eb3,#ec4899); }
.playback-overview .pb-peak { background:linear-gradient(135deg,#f97316,#ef4444); }
.playback-overview .pb-play { background:linear-gradient(135deg,#a855f7,#7c3aed); }
.playback-overview .pb-user { background:linear-gradient(135deg,#6366f1,#3b82f6); }
.playback-overview .pb-data { background:linear-gradient(135deg,#14b8a6,#06b6d4); }
.playback-overview .pb-month { background:linear-gradient(135deg,#f59e0b,#eab308); }
.playback-advice { display:grid; gap:11px; padding:16px 18px; border:1px solid rgba(255,126,179,.26); border-radius:14px; background:linear-gradient(135deg,rgba(255,126,179,.09),rgba(124,58,237,.08)); }
.playback-advice.ready { border-color:rgba(74,215,209,.32); background:linear-gradient(135deg,rgba(74,215,209,.09),rgba(124,58,237,.07)); }
.playback-advice > div:first-child { display:flex; align-items:center; gap:12px; min-width:0; }
.playback-advice > div:first-child b { flex:0 0 auto; font-size:16px; }
.playback-advice > div:first-child span { color:var(--text-2); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.playback-advice-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.playback-advice-stats span { min-width:0; padding:10px 12px; border-radius:10px; background:rgba(255,255,255,.045); color:var(--text-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.playback-advice-stats b { color:var(--text); }
.playback-advice small { color:var(--text-3); line-height:1.65; }
.playback-monitor-grid { align-items:stretch; }
.playback-monitor-grid > .do-panel { min-width:0; }
.playback-trend { height:240px; min-width:0; padding-top:16px; }
.playback-trend-value { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-2); font-size:15px; line-height:1; }
.playback-trend .do-trend-bar { max-height:calc(100% - 48px); }
.playback-regions { display:grid; align-content:start; gap:11px; min-height:220px; padding:16px 18px; }
.playback-region-row { display:grid; grid-template-columns:minmax(72px,auto) minmax(80px,1fr) 42px; align-items:center; gap:10px; min-width:0; }
.playback-region-row > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-2); }
.playback-region-row > b { text-align:right; }
.playback-region-bar { height:8px; overflow:hidden; border-radius:999px; background:rgba(255,255,255,.06); }
.playback-region-bar i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#ff7eb3,#8b5cf6); }
.playback-health-line { display:flex; flex-wrap:wrap; gap:10px 28px; padding:16px 18px; color:var(--text-2); }
.playback-health-line b { color:var(--text); }
#bossView .playback-table { width:100%!important; min-width:0!important; table-layout:fixed!important; }
#bossView .playback-table th,#bossView .playback-table td { min-width:0!important; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#bossView .playback-table .pb-col-media { width:20%; }
#bossView .playback-table .pb-col-project { width:16%; }
#bossView .playback-table .pb-col-opens { width:8%; }
#bossView .playback-table .pb-col-viewers { width:9%; }
#bossView .playback-table .pb-col-repeat { width:12%; }
#bossView .playback-table .pb-col-bytes { width:15%; }
#bossView .playback-table .pb-col-buffer { width:20%; }
#bossView .playback-table th:last-child,#bossView .playback-table td:last-child { width:auto!important; min-width:0!important; overflow:hidden!important; }
.playback-request-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; padding:14px 16px; }
.playback-request-summary span { min-width:0; padding:10px 12px; border-radius:10px; background:rgba(255,255,255,.045); color:var(--text-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.playback-request-summary b { color:var(--text); }
#bossView .playback-request-table { width:100%!important; min-width:0!important; table-layout:fixed!important; }
#bossView .playback-request-table th,#bossView .playback-request-table td { min-width:0!important; overflow:hidden!important; text-overflow:ellipsis; white-space:nowrap; padding-left:8px; padding-right:8px; }
#bossView .playback-request-table td small { display:block; color:var(--text-3); font-size:10px; line-height:1.2; }
#bossView .playback-request-table .pbr-period { width:14%; }
#bossView .playback-request-table .pbr-opens { width:6%; }
#bossView .playback-request-table .pbr-viewers { width:6%; }
#bossView .playback-request-table .pbr-requests { width:11%; }
#bossView .playback-request-table .pbr-billed { width:11%; }
#bossView .playback-request-table .pbr-egress { width:10%; }
#bossView .playback-request-table .pbr-cost { width:9%; }
#bossView .playback-request-table .pbr-items { width:22%; }
#bossView .playback-request-table .pbr-observed { width:11%; }
#bossView .playback-request-table th:last-child,#bossView .playback-request-table td:last-child { width:auto!important; min-width:0!important; overflow:hidden!important; }
.playback-request-table-wrap { max-height:520px; overflow-y:auto; }
.playback-cos-groups { margin-left:auto; }
.playback-request-alert { display:inline-flex; align-items:center; gap:7px; color:#ff8a9b; font-weight:700; }
.playback-request-alert i { width:9px; height:9px; border-radius:50%; background:#ff3b55; box-shadow:0 0 0 4px rgba(255,59,85,.15); animation:playbackRequestPulse 1.5s ease-in-out infinite; }
@keyframes playbackRequestPulse { 50% { box-shadow:0 0 0 8px rgba(255,59,85,0); } }
.playback-method-note { padding:12px 16px 15px; border-top:1px solid var(--line); color:var(--text-3); font-size:12px; line-height:1.65; }
.playback-metric-explanations { display:grid; gap:3px; margin-top:8px; color:var(--text-2); }
.playback-metric-explanations b { color:var(--text); }
@media (max-width:1280px) {
  .playback-overview { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .playback-advice-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:820px) {
  .playback-monitor-toolbar { align-items:flex-start; flex-wrap:wrap; }
  .playback-monitor-toolbar .dt-spacer { display:none; }
  .playback-overview { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .playback-advice-stats { grid-template-columns:1fr; }
  .playback-monitor-grid { grid-template-columns:1fr!important; }
  .playback-request-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* 素材批量操作：所有操作控件使用同一尺寸、边框和底色。 */
#batchToolbar .batch-action-control {
  box-sizing:border-box;
  height:34px;
  min-height:34px;
  margin:0;
  padding:0 13px;
  border:1px solid rgba(255,126,179,.35)!important;
  border-radius:8px;
  background-color:var(--bg-2)!important;
  background-image:none;
  color:#fff!important;
  font-size:15px;
  font-weight:500;
  line-height:32px;
  white-space:nowrap;
}
#batchToolbar select.batch-action-control {
  min-width:132px;
  padding-right:30px!important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E")!important;
}
#batchToolbar button.batch-action-control:hover { border-color:var(--accent)!important; color:var(--accent)!important; }
#batchToolbar button.batch-action-control:disabled { opacity:.5; cursor:not-allowed; }
#batchToolbar #batchSummary { margin-left:auto; color:var(--text-2); font-size:15px; white-space:nowrap; }

/* 本轮：团队概览桌面表格保持在面板固定宽度内，新增“身份”列后不向右溢出。 */
html:not(.mobile-ui) #adminOverview .overview-project-table-wrap { width:100%; max-width:100%; overflow:hidden; }
html:not(.mobile-ui) #adminOverview .overview-project-table { width:100%; min-width:0; table-layout:fixed; }
html:not(.mobile-ui) #adminOverview .overview-project-table th,
html:not(.mobile-ui) #adminOverview .overview-project-table td { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(1) { width:22%; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(2) { width:15%; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(3) { width:11%; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(4) { width:9%; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(5) { width:13%; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(6) { width:11%; }
html:not(.mobile-ui) #adminOverview .overview-project-table th:nth-child(7) { width:19%; }

/* 流程模板与企业资料智能识别：电脑、手机共用的内容结构。 */
.workflow-hint { line-height:1.7; }
.workflow-template-card { align-items:center; gap:14px; }
.workflow-template-card .wf-steps { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin-top:9px; }
.workflow-template-card .row-btns { flex:none; }
.workflow-default-check { display:flex!important; align-items:center; gap:8px; }
.workflow-default-check input { width:auto!important; margin:0; }
.enterprise-smart-import { margin-bottom:16px; padding:15px; border:1px solid rgba(255,143,199,.22); border-radius:14px; background:linear-gradient(135deg,rgba(255,126,179,.08),rgba(139,92,246,.08)); }
.enterprise-smart-import > label { display:flex; flex-direction:column; gap:4px; margin:0 0 9px; }
.enterprise-smart-import > label span { color:var(--text); font-weight:700; }
.enterprise-smart-import > label small { color:var(--text-3); font-weight:400; }
.enterprise-smart-import textarea { width:100%; resize:vertical; box-sizing:border-box; border:1px solid rgba(255,143,199,.28); border-radius:11px; background:rgba(8,7,18,.82); color:var(--text); box-shadow:inset 0 1px 0 rgba(255,255,255,.035); color-scheme:dark; }
.enterprise-smart-import textarea::placeholder { color:var(--text-3); }
.enterprise-smart-import textarea:focus { outline:none; border-color:rgba(255,126,179,.72); box-shadow:0 0 0 3px rgba(168,85,247,.12); }
.enterprise-smart-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:9px; }
.enterprise-smart-actions span { color:var(--text-3); font-size:14px; line-height:1.45; }

/* 本轮：流程模板状态支持名称、备注和颜色；桌面端新建小组名称与流程按 3:1 同排。 */
.workflow-template-card .wf-step { display:inline-flex; align-items:center; gap:5px; border:1px solid currentColor; border-radius:999px; padding:5px 9px; background:rgba(255,255,255,.025); }
.workflow-template-card .wf-step small { max-width:190px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-3); font-size:13px; }
.workflow-step-editor { display:flex; flex-direction:column; gap:8px; margin:8px 0; }
.workflow-step-row { display:grid; grid-template-columns:26px minmax(120px,.8fr) minmax(170px,1.2fr) 38px 34px; align-items:center; gap:8px; }
.workflow-step-order { color:var(--text-3); text-align:center; }
.workflow-step-row input:not([type="color"]) { width:100%; min-width:0; box-sizing:border-box; margin:0; }
.workflow-step-color { position:relative; display:block; width:38px; height:36px; margin:0; cursor:pointer; }
.workflow-step-color input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.workflow-step-color i { display:block; width:100%; height:100%; border:1px solid var(--line); border-radius:8px; box-shadow:inset 0 0 0 3px rgba(255,255,255,.12); pointer-events:none; }
.workflow-step-lock { display:grid; place-items:center; width:34px; height:34px; }
.workflow-add-step { margin-bottom:10px; }
html:not(.mobile-ui) .new-project-wrap .np-name-flow-row { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,1fr); gap:12px; align-items:end; }
html:not(.mobile-ui) .new-project-wrap .np-name-flow-row > label { display:block; min-width:0; margin:0; }
html:not(.mobile-ui) .new-project-wrap .np-name-flow-row .np-form-label { display:block; }
html:not(.mobile-ui) .new-project-wrap .np-name-flow-row input,
html:not(.mobile-ui) .new-project-wrap .np-name-flow-row select { width:100%!important; min-width:0; box-sizing:border-box; margin:8px 0!important; }

/* 开票类型在电脑端和手机端统一为横排双按钮。 */
.invoice-type-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:7px 0 10px; }
.invoice-type-option { display:block; margin:0; cursor:pointer; }
.invoice-type-option input { position:absolute; opacity:0; pointer-events:none; }
.invoice-type-option span { display:flex; align-items:center; justify-content:center; min-height:40px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.035); color:var(--text-2); transition:.15s; }
.invoice-type-option input:checked + span { border-color:#ff7eb3; background:linear-gradient(135deg,rgba(255,126,179,.24),rgba(168,85,247,.24)); color:#fff; box-shadow:0 5px 16px rgba(139,76,244,.16); }

/* 日期提示在桌面布局中不额外占行，手机端由 mobile.css 显示。 */
.profit-date-field { display:contents; }
.profit-date-hint { display:none; }

/* 电脑端利润数字避开装饰背景，使用高对比青色与暗色描边。 */
html:not(.mobile-ui) #adminModule[data-page="financeProfit"] #pfSideProfit {
  color:#62ffe1!important;
  text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 8px rgba(98,255,225,.42);
}

/* 本轮仅整理电脑端小组素材工具栏：文件夹入口属于手机端，文件类型统一使用下拉框。 */
html:not(.mobile-ui) #mobileFolderFilterBtn,
html:not(.mobile-ui) #assetTypePills { display:none!important; }
html:not(.mobile-ui) #assetTypeSelect { display:block!important; }
/* #20260908 分集难易梯度：仅数据报表 */
#wsReports .ra-difficulty-tools{margin-left:auto;display:flex;align-items:center;gap:9px;padding:4px 8px 4px 5px;border:1px solid rgba(255,126,179,.22);border-radius:12px;background:rgba(17,14,28,.72)}
#wsReports .ra-difficulty-switch{display:flex;align-items:center;cursor:pointer}
#wsReports .ra-difficulty-switch input{position:absolute;opacity:0;pointer-events:none}
#wsReports .ra-difficulty-switch i{position:relative;width:38px;height:21px;border-radius:999px;background:#443c55;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:.2s}
#wsReports .ra-difficulty-switch i:after{content:"";position:absolute;left:3px;top:3px;width:15px;height:15px;border-radius:50%;background:#aaa2b7;transition:.2s}
#wsReports .ra-difficulty-switch input:checked+i{background:linear-gradient(90deg,#ff70b7,#9254ff);box-shadow:0 0 12px rgba(255,112,183,.35)}
#wsReports .ra-difficulty-switch input:checked+i:after{left:20px;background:#fff}
#wsReports .ra-difficulty-btn{white-space:nowrap;padding:6px 9px;border:0;border-radius:8px;background:transparent;color:#f1e8fa;font:inherit;font-size:14px;cursor:pointer}#wsReports .ra-difficulty-btn:hover{background:rgba(255,126,179,.11);color:#ffafd1}
#wsReports .ra-toolbar .ra-export-btn{margin-left:0}
#wsReports .ra-difficulty-col{width:8%;text-align:center!important;color:#ffe66d}
#wsReports .ra-difficulty-col small,#wsReports .ra-raw-duration{display:block;font-size:12px;color:var(--text-3);margin-top:2px}
.episode-difficulty-modal{padding:0 4px}.episode-difficulty-modal .ed-title{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 2px 13px;border-bottom:1px solid rgba(255,126,179,.14)}
.episode-difficulty-modal .ed-title h3{margin:0;color:#fff;font-size:23px}
.episode-difficulty-modal .ed-total{height:34px;box-sizing:border-box;display:flex;align-items:center;align-self:center;gap:6px;padding:3px 7px 3px 10px;border:1px solid rgba(255,126,179,.25);border-radius:9px;background:rgba(255,126,179,.06);color:#dcd3ea;white-space:nowrap;font-size:14px;line-height:28px}
.episode-difficulty-modal .ed-total span,.episode-difficulty-modal .ed-total em{display:flex;height:26px;align-items:center;line-height:1}.episode-difficulty-modal .ed-total input{display:block;width:72px;height:26px;box-sizing:border-box;margin:0;background:#211c31;border:1px solid #514563;color:#fff;border-radius:6px;padding:2px 7px;text-align:center;font-weight:700;line-height:20px}.episode-difficulty-modal .ed-total em{font-style:normal;color:var(--text-3)}
.ed-help{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:13px 0;padding:10px 14px;border-radius:10px;background:linear-gradient(90deg,rgba(124,58,237,.13),rgba(255,126,179,.07));color:#c9bfd7;font-size:14px;line-height:1.55}.ed-help b{grid-row:1/3;color:#ff9ac5}.ed-help small{color:#8e839e;font-size:13px}
.ed-levels{display:flex;flex-direction:column;gap:4px}.ed-level-head,.ed-level-row{display:grid;grid-template-columns:72px 82px minmax(240px,1fr) 96px 34px;gap:7px;align-items:center}
.ed-level-head{padding:5px 9px;margin-bottom:1px;border:1px solid rgba(154,106,221,.16);border-radius:8px;background:linear-gradient(90deg,rgba(124,58,237,.14),rgba(255,126,179,.08));color:#d9ccec;font-size:15px;font-weight:700}.ed-level-head span:nth-child(2),.ed-level-head span:nth-child(4){color:#ffadd0}.ed-level-row{height:46px;min-height:46px;box-sizing:border-box;padding:5px 9px;border:1px solid rgba(255,255,255,.065);border-radius:8px;background:linear-gradient(90deg,rgba(42,36,60,.78),rgba(30,26,44,.72));transition:.18s}.ed-level-row:hover{border-color:rgba(255,126,179,.22);background:linear-gradient(90deg,rgba(48,40,69,.88),rgba(34,29,50,.82))}
.episode-difficulty-modal .ed-field{display:block;min-width:0;margin:0}.ed-field>span{display:none}.episode-difficulty-modal .ed-level-row input{width:100%;height:34px;min-height:34px;min-width:0;box-sizing:border-box;margin:0;background:#191624;border:1px solid #453b58;color:#f7efff;border-radius:6px;padding:6px 9px;outline:none;transition:.18s}.ed-level-row input:focus{border-color:#d65bc1;box-shadow:0 0 0 2px rgba(214,91,193,.12)}
.ed-order{display:flex;gap:4px}.ed-order button,.ed-delete{width:34px;height:34px;padding:0;border:1px solid #4b415f;border-radius:6px;background:#29233b;color:#cbc1da;cursor:pointer;transition:.15s;line-height:32px}.ed-order button:hover{border-color:#a969db;color:#fff;transform:translateY(-1px)}.ed-delete{color:#ff8da8}.ed-delete:hover{background:rgba(255,91,133,.13);border-color:#ff6b98}
.ed-actions{display:flex;gap:8px;margin-top:13px}.ed-footer{margin:20px -4px 0;padding:16px 4px 0;border-top:1px solid rgba(255,126,179,.14)}
@media(max-width:720px){#wsReports .ra-difficulty-tools{margin-left:0}.episode-difficulty-modal .ed-title{display:block}.episode-difficulty-modal .ed-total{margin-top:12px;width:max-content}.ed-level-head{display:none}.ed-level-row{grid-template-columns:68px minmax(80px,1fr) 78px 34px;gap:7px;padding:8px}.ed-field>span{display:block;margin:0 0 4px;color:#8f849e;font-size:12px}.ed-level-row .ed-order{grid-column:1;align-self:end;margin-bottom:2px}.ed-level-row .ed-field:not(.ed-rule-field):has(.ed-name){grid-column:2}.ed-level-row .ed-field:has(.ed-coef){grid-column:3}.ed-level-row .ed-delete{grid-column:4;align-self:end;margin-bottom:2px}.ed-level-row .ed-rule-field{grid-column:1/-1;grid-row:2}.episode-difficulty-modal{min-width:0}.ed-help{display:block}.ed-help b,.ed-help span,.ed-help small{display:block}.ed-help span{margin-top:4px}.ed-help small{margin-top:3px}}
.ed-table-wrap{width:100%}
@media(max-width:720px){.episode-difficulty-modal .ed-table-wrap{overflow-x:auto;border:1px solid rgba(154,106,221,.22);border-radius:9px;background:rgba(20,17,30,.68)}.episode-difficulty-modal .ed-level-head,.episode-difficulty-modal .ed-level-row{display:grid;grid-template-columns:72px 82px 248px 64px 34px;gap:7px;min-width:546px;box-sizing:border-box}.episode-difficulty-modal .ed-level-head{padding:5px 9px;margin:0;border:0;border-bottom:1px solid rgba(154,106,221,.22);border-radius:0;position:sticky;top:0;z-index:1}.episode-difficulty-modal .ed-levels{gap:0}.episode-difficulty-modal .ed-level-row{height:46px;min-height:46px;padding:5px 9px;margin:0;border:0;border-bottom:1px solid rgba(255,255,255,.07);border-radius:0;background:transparent}.episode-difficulty-modal .ed-level-row:last-child{border-bottom:0}.episode-difficulty-modal .ed-level-row .ed-field,.episode-difficulty-modal .ed-level-row .ed-rule-field,.episode-difficulty-modal .ed-level-row .ed-order,.episode-difficulty-modal .ed-level-row .ed-delete{display:block;grid-column:auto!important;grid-row:auto!important;align-self:center!important;margin:0!important}.episode-difficulty-modal .ed-level-row .ed-order{display:flex}.episode-difficulty-modal .ed-field>span{display:none}}

/* 2026-09-12 教程截图期间发现的三处定向界面修复。 */
.dtp-popover{z-index:10060}
.push-progress-tray{bottom:140px}
.upload-placement-modal .upload-placement-wrap{background:#17131f;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 0 0 1px rgba(255,126,179,.42)}

/* 2026-09-13 团队成员：批量身份入口置于最右，成员列表按内容自适应列宽。 */
.member-batchbar .member-batch-identity{margin-left:auto}
#adminView .member-table-wrap{overflow-x:auto!important}
#adminView .member-table{width:100%!important;min-width:1060px!important;max-width:none!important;table-layout:auto!important}
#adminView .member-table th,#adminView .member-table td{white-space:nowrap!important}
#adminView .member-table th:nth-child(1),#adminView .member-table td:nth-child(1){width:1%!important;min-width:44px!important;max-width:44px!important}
#adminView .member-table th:nth-child(2),#adminView .member-table td:nth-child(2){width:1%!important;min-width:7.5em!important;max-width:8.5em!important}
#adminView .member-table .mt-name{display:inline-block;max-width:5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#adminView .member-table th:nth-child(n+3):nth-child(-n+8),#adminView .member-table td:nth-child(n+3):nth-child(-n+8){width:1%!important;min-width:0!important;max-width:none!important;padding-left:.5em!important;padding-right:.5em!important}
#adminView .member-table th:nth-child(9),#adminView .member-table td:nth-child(9),#adminView .member-table th:nth-child(10),#adminView .member-table td:nth-child(10){width:1%!important;min-width:9.5em!important;max-width:10.5em!important;text-overflow:ellipsis!important;overflow:hidden!important}
#adminView .member-table th:nth-child(11),#adminView .member-table td:nth-child(11){width:1%!important;min-width:0!important;max-width:none!important;overflow:visible!important;text-overflow:clip!important}#adminView .member-table .mt-ops .ghost-btn{min-width:0!important;padding:3px .5em!important;margin:0 2px 0 0!important}#adminView .member-table .mt-ops .ghost-btn:last-child{margin-right:0!important}
#adminView .member-table .mt-num{text-align:center!important;font-variant-numeric:tabular-nums;white-space:nowrap!important}
.modal.team-role-settings-shell{width:min(980px,96vw);max-width:96vw;margin:auto}
.modal-card.team-role-settings-shell{width:100%;max-height:min(820px,88vh);overflow:auto;padding:26px;background:rgba(25,20,39,.97);border:1px solid rgba(255,126,179,.36);box-shadow:0 26px 80px rgba(0,0,0,.68)}
.team-role-settings-head{text-align:center;margin-bottom:18px}.team-role-settings-head h3{margin-bottom:7px}.team-role-settings-head p{margin:0;color:var(--text-2);font-size:15px;line-height:1.55}
.team-role-settings-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px;align-items:stretch;min-height:430px}
.team-role-settings-list,.team-role-settings-editor{min-width:0;border:1px solid rgba(255,126,179,.22);border-radius:14px;background:rgba(8,7,17,.38);padding:14px}
.team-role-settings-list-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.team-role-settings-list-head b{font-size:17px}.team-role-settings-list-head .ghost-btn{white-space:nowrap}
.team-role-settings-item{display:flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:10px;margin-bottom:7px;background:rgba(255,255,255,.035)}.team-role-settings-item.active{border-color:var(--accent);background:rgba(255,126,179,.13)}
.team-role-settings-select{display:flex;align-items:center;gap:8px;min-width:0;flex:1;border:0;background:transparent;color:var(--text);padding:10px;text-align:left;cursor:pointer;font:inherit}.team-role-settings-select b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}
.team-role-settings-lock{padding:0 9px;color:var(--text-3)}.team-role-settings-delete{width:30px;height:30px;margin-right:6px;border:1px solid rgba(255,95,109,.34);border-radius:8px;background:rgba(255,95,109,.08);color:#ff8b97;cursor:pointer;font-size:20px;line-height:1}.team-role-settings-delete:hover{background:rgba(255,95,109,.2);color:#fff}
.team-role-settings-editor{padding:18px}.team-role-name-label{font-weight:700;color:var(--text)!important}.team-role-settings-editor #teamRoleName{margin-bottom:15px}
.team-role-founder-note{padding:12px 14px;border:1px solid rgba(255,193,7,.34);border-radius:10px;background:rgba(255,193,7,.09);color:#ffe19a;font-size:15px;line-height:1.6}
.team-role-settings-editor .perm-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.team-role-default-tip{margin:14px 0 0;color:var(--text-3);font-size:15px;line-height:1.55}
@media(max-width:760px){.modal-card.team-role-settings-shell{padding:18px}.team-role-settings-layout{grid-template-columns:1fr;min-height:0}.team-role-settings-list{max-height:230px;overflow:auto}.team-role-settings-editor .perm-cols{grid-template-columns:1fr}}
.team-role-settings-list #teamRoleList{max-height:245px;overflow:auto;padding-right:2px}
.team-department-settings{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,126,179,.18)}
.team-department-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:9px}.team-department-title b{font-size:16px}.team-department-title span{font-size:13px;color:var(--text-3)}
#teamDepartmentList{display:flex;flex-wrap:wrap;gap:6px;max-height:102px;overflow:auto}.team-department-item{display:flex;align-items:center;gap:5px;max-width:100%;padding:5px 7px 5px 9px;border:1px solid rgba(255,126,179,.22);border-radius:999px;background:rgba(255,126,179,.08);font-size:14px}.team-department-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-department-item button{border:0;background:transparent;color:#ff9bab;cursor:pointer;font-size:17px;line-height:1;padding:0 2px}.team-department-empty{margin:0;color:var(--text-3);font-size:14px}.team-department-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;margin-top:9px}.team-department-add input{min-width:0;margin:0!important;font-size:14px!important}.team-department-add .ghost-btn{white-space:nowrap;margin:0!important}
.team-quota-intro{margin:0 0 14px;color:var(--text-2);font-size:15px;line-height:1.6}.team-quota-current{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.team-quota-current span{padding:12px;border:1px solid var(--line);border-radius:10px;background:rgba(255,255,255,.035);color:var(--text-2)}.team-quota-current b{color:var(--accent)}.team-quota-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.team-quota-limit{padding:11px 13px;border-radius:10px;background:rgba(161,121,255,.1);color:var(--text-2);font-size:14px;line-height:1.55}.m-card-actions [data-quota-member]{color:#ffd36a}
.modal.team-member-quota-shell{font-size:15px}.modal.team-member-quota-shell .team-quota-current span,.modal.team-member-quota-shell .team-quota-current b,.modal.team-member-quota-shell .team-quota-limit,.modal.team-member-quota-shell .primary-btn,.modal.team-member-quota-shell .ghost-btn{font-size:15px!important}
.modal.team-batch-quota-shell{width:min(960px,96vw);max-width:96vw;margin:auto;font-size:15px}.modal-card.team-batch-quota-shell{width:100%;max-height:88vh;overflow:auto;padding:24px;background:rgba(25,20,39,.98)}.modal.team-batch-quota-shell .primary-btn,.modal.team-batch-quota-shell .ghost-btn{font-size:15px!important}
.team-batch-quota-uniform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;padding:12px;border:1px solid rgba(255,126,179,.22);border-radius:12px;background:rgba(255,126,179,.05)}.team-batch-quota-uniform label{display:grid;grid-template-columns:auto minmax(110px,1fr) auto;gap:8px;align-items:center}.team-batch-quota-uniform span{font-weight:700;white-space:nowrap}.team-batch-quota-uniform input{min-width:0;margin:0!important}.team-batch-quota-uniform button{margin:0!important}
.team-batch-quota-table{border:1px solid var(--line);border-radius:12px;overflow:hidden}.team-batch-quota-row{display:grid;grid-template-columns:minmax(90px,1.1fr) minmax(150px,1.5fr) minmax(100px,.8fr) minmax(120px,.9fr);gap:10px;align-items:center;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.07)}.team-batch-quota-row:last-child{border-bottom:0}.team-batch-quota-row.head{background:rgba(0,0,0,.28);color:var(--text-2);font-weight:700}.team-batch-quota-row b,.team-batch-quota-row span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-batch-quota-row input{width:100%;min-width:0;margin:0!important}
@media(max-width:760px){.team-quota-current,.team-quota-grid{grid-template-columns:1fr}.team-role-settings-list #teamRoleList{max-height:none}}
@media(max-width:760px){.team-batch-quota-uniform{grid-template-columns:1fr}.team-batch-quota-uniform label{grid-template-columns:1fr auto}.team-batch-quota-uniform label span{grid-column:1/-1}.team-batch-quota-table{overflow-x:auto}.team-batch-quota-row{min-width:680px}}

/* 全屏审片：视频保持原比例完整显示，控制栏跟随全屏元素并按鼠标停留自动隐藏。 */
.review-stage:fullscreen .stage-wrap { padding: 0; }
.review-stage:fullscreen #videoWaveTrack,
.review-stage:fullscreen #timelineBar,
.review-stage:fullscreen #commentInputBar,
.review-stage:fullscreen .rv-bottom-edge { display: none !important; }
.review-stage:fullscreen #videoWaveTrack.fullscreen-wave-open {
  display: block !important;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 45px;
  z-index: 35;
  margin: 0;
  padding: 3px 16px 4px !important;
  pointer-events: auto;
}
.review-stage:fullscreen #guidePanel {
  z-index: 40;
}
.review-stage:fullscreen #controls {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  background: linear-gradient(to top, rgba(0,0,0,.82), rgba(0,0,0,.38), transparent);
  border-top: 0;
  transition: opacity .3s, transform .3s;
}
.review-stage:fullscreen #controls.autohide {
  opacity: 0;
  transform: translateY(100%);
  pointer-events: none;
}

/* 视频默认关闭安全边时也要真正铺满审片画面；仅设置 object-fit 不会改变元素本身尺寸。 */
.stage.fit-cover video {
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  background: #000;
}
