/* ===========================
   SHL Staff Portal · 基础样式
   =========================== */

:root {
  --bg:        #f4f3f0;
  --surface:   #ffffff;
  --border:    #d8d5ce;
  --text:      #1a1a1a;
  --text-sub:  #6b6660;
  --accent:    #2a5c8a;
  --accent-h:  #1d4268;
  --danger:    #9b2b2b;
  --ok:        #2b6b3a;
  --warn:      #8a6200;
  --badge-g:   #2b6b3a;
  --badge-b:   #2a5c8a;
  --badge-r:   #9b2b2b;
  --radius:    4px;
  --font:      'Helvetica Neue', 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.6;
  min-height: 100vh;
}

a { color: var(--accent); text-decoration: none; }
a:hover { text-decoration: underline; }

/* 导航栏 */
.navbar {
  background: var(--text);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  height: 48px;
  position: sticky;
  top: 0;
  z-index: 100;
}
.nav-logo { color: #fff; font-size: 13px; letter-spacing: 2px; font-weight: 600; text-decoration: none; }
.nav-right { display: flex; align-items: center; gap: 20px; }
.nav-right a { color: #ccc; font-size: 13px; }
.nav-right a:hover { color: #fff; text-decoration: none; }

/* 工牌 */
.nav-badge, .post-badge {
  font-size: 11px; padding: 2px 7px; border-radius: 2px;
  color: #fff; font-weight: 500; letter-spacing: 0.5px;
}
.badge-绿 { background: var(--badge-g); }
.badge-蓝 { background: var(--badge-b); }
.badge-红 { background: var(--badge-r); }

/* 主容器 */
.container { max-width: 900px; margin: 0 auto; padding: 28px 16px 60px; }

/* 页面标题 */
.page-header { margin-bottom: 24px; border-bottom: 1px solid var(--border); padding-bottom: 16px; }
.page-header h2 { font-size: 20px; font-weight: 600; }
.page-sub { color: var(--text-sub); font-size: 13px; margin-top: 4px; }
.page-header .btn { margin-top: 12px; }

/* 版块列表 */
.board-list { display: grid; gap: 12px; }
.board-card {
  display: block; background: var(--surface);
  border: 1px solid var(--border); border-radius: var(--radius);
  padding: 16px 20px; transition: border-color .15s;
}
.board-card:hover { border-color: var(--accent); text-decoration: none; }
.board-card-name { font-weight: 600; font-size: 15px; color: var(--text); }
.board-card-desc { color: var(--text-sub); font-size: 13px; margin-top: 4px; }
.board-tag { font-size: 11px; color: var(--text-sub); margin-top: 6px; display: inline-block; }

/* 帖子列表 */
.thread-list {
  display: grid; gap: 1px; background: var(--border);
  border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden;
}
.thread-row {
  display: flex; align-items: center; justify-content: space-between;
  background: var(--surface); padding: 12px 16px; transition: background .1s;
}
.thread-row:hover { background: #fafaf8; text-decoration: none; }
.thread-row.pinned { background: #f7f5ef; }
.thread-title { font-size: 14px; color: var(--text); flex: 1; }
.pin-tag {
  font-size: 11px; color: var(--warn); border: 1px solid var(--warn);
  padding: 1px 5px; border-radius: 2px; margin-right: 8px;
}
.thread-meta { font-size: 12px; color: var(--text-sub); display: flex; gap: 16px; flex-shrink: 0; }
.empty-hint { color: var(--text-sub); padding: 24px 0; text-align: center; }
.nav-back { margin-top: 24px; font-size: 13px; }

/* 帖子详情 */
.post-list { display: grid; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 32px; }
.post-item { display: flex; gap: 16px; background: var(--surface); padding: 16px; }
.post-avatar img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); }
.post-body { flex: 1; min-width: 0; }
.post-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.post-author { font-weight: 600; color: var(--text); }
.post-time { font-size: 12px; color: var(--text-sub); }
.post-num { font-size: 12px; color: var(--text-sub); margin-left: auto; }
.post-content { font-size: 14px; line-height: 1.7; word-break: break-word; }

/* 回复框 */
.reply-box { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 20px; margin-top: 8px; }
.reply-box h3 { font-size: 15px; margin-bottom: 12px; }
.reply-box textarea { width: 100%; resize: vertical; }
.reply-box .btn { margin-top: 10px; }

/* 聊天室 */
.chat-wrap { display: flex; flex-direction: column; height: calc(100vh - 120px); }
.chat-header { padding-bottom: 12px; border-bottom: 1px solid var(--border); margin-bottom: 0; }
.chat-log {
  flex: 1; overflow-y: auto; padding: 16px 0;
  display: flex; flex-direction: column; gap: 12px;
}
.chat-msg { display: flex; gap: 10px; align-items: flex-start; }
.chat-avatar { width: 32px; height: 32px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); flex-shrink: 0; }
.chat-msg-body { flex: 1; min-width: 0; }
.chat-author { font-weight: 600; font-size: 13px; margin-right: 6px; }
.chat-time { font-size: 11px; color: var(--text-sub); }
.chat-text { font-size: 14px; margin-top: 2px; word-break: break-word; }
.chat-input-area {
  display: flex; gap: 8px; padding-top: 12px;
  border-top: 1px solid var(--border); margin-top: 8px;
}
.chat-input-area input { flex: 1; }

/* 个人档案 */
.profile-card {
  display: flex; gap: 24px; background: var(--surface);
  border: 1px solid var(--border); border-radius: var(--radius); padding: 24px; margin-bottom: 24px;
}
.profile-avatar { width: 80px; height: 80px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); flex-shrink: 0; }
.profile-id { font-size: 20px; font-weight: 600; margin-bottom: 6px; }
.profile-meta { display: flex; gap: 12px; font-size: 13px; color: var(--text-sub); margin: 8px 0; }
.profile-bio { font-size: 14px; color: var(--text-sub); margin-top: 8px; }

/* 私信 */
.msg-thread { display: grid; gap: 12px; margin-bottom: 24px; }
.msg-item { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 12px 16px; }
.msg-from-admin { background: #f0f4f8; border-color: #c0cfe0; }
.msg-label { font-size: 12px; font-weight: 600; color: var(--text-sub); margin-bottom: 4px; }
.msg-text { font-size: 14px; }
.msg-time { font-size: 11px; color: var(--text-sub); margin-top: 4px; }

/* 管理后台 */
.admin-section { margin-bottom: 40px; }
.admin-section h3 { font-size: 16px; font-weight: 600; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 1px solid var(--border); }
.admin-user-card {
  display: flex; align-items: flex-start; gap: 16px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 14px 16px; margin-bottom: 8px;
}
.admin-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; border: 1px solid var(--border); flex-shrink: 0; }
.admin-user-info { flex: 1; min-width: 0; }
.admin-user-info strong { font-size: 15px; }
.admin-bio { font-size: 13px; color: var(--text-sub); margin-top: 4px; }
.admin-actions { display: flex; gap: 8px; flex-shrink: 0; align-items: center; }
.admin-msg-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 14px 16px; margin-bottom: 8px; }
.admin-msg-text { margin: 6px 0; }
.inline-reply { display: flex; gap: 8px; margin-top: 8px; }
.inline-reply input { flex: 1; }

/* 认证页 */
.auth-box {
  max-width: 420px; margin: 48px auto;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 36px 32px;
}
.auth-box-wide { max-width: 600px; }
.auth-header { text-align: center; margin-bottom: 28px; }
.auth-logo { font-size: 32px; margin-bottom: 8px; }
.auth-header h1 { font-size: 18px; font-weight: 700; letter-spacing: 2px; }
.auth-sub { color: var(--text-sub); font-size: 12px; margin-top: 4px; }
.auth-footer { text-align: center; margin-top: 20px; font-size: 13px; color: var(--text-sub); }

/* 问卷 */
.quest-item { margin-bottom: 24px; }
.quest-q { font-weight: 600; margin-bottom: 10px; }
.quest-options { display: grid; gap: 8px; }
.quest-option {
  display: flex; align-items: center; gap: 10px;
  background: var(--bg); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 10px 14px; cursor: pointer; transition: border-color .15s;
}
.quest-option:hover { border-color: var(--accent); }
.quest-option input { flex-shrink: 0; }
.quest-result { text-align: center; padding: 24px 0 20px; }
.quest-result-label { color: var(--text-sub); font-size: 13px; }
.quest-result-dept { font-size: 22px; font-weight: 700; margin: 8px 0; color: var(--accent); }
.quest-result-hint { font-size: 12px; color: var(--text-sub); margin-bottom: 20px; }

/* 表单通用 */
.auth-form fieldset { border: 1px solid var(--border); border-radius: var(--radius); padding: 16px; margin-bottom: 16px; }
.auth-form legend { font-size: 13px; font-weight: 600; padding: 0 6px; color: var(--text-sub); }
.form-group { margin-bottom: 14px; }
.form-group:last-child { margin-bottom: 0; }
.form-group label { display: block; font-size: 13px; font-weight: 500; margin-bottom: 5px; }
.form-row { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 12px; }
.post-form .form-group { margin-bottom: 16px; }
.form-actions { display: flex; gap: 10px; margin-top: 8px; }

input[type=text], input[type=password], input[type=number],
input[type=email], select, textarea {
  width: 100%; padding: 8px 10px;
  border: 1px solid var(--border); border-radius: var(--radius);
  background: var(--bg); color: var(--text);
  font-family: var(--font); font-size: 14px;
  transition: border-color .15s;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--accent);
}

.hint { font-size: 12px; color: var(--text-sub); margin-left: 8px; }
.required { color: var(--danger); }

/* 按钮 */
.btn {
  display: inline-block; padding: 8px 18px;
  border: none; border-radius: var(--radius);
  font-family: var(--font); font-size: 13px; font-weight: 500;
  cursor: pointer; transition: background .15s; text-align: center;
}
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-h); text-decoration: none; color: #fff; }
.btn-ghost { background: transparent; border: 1px solid var(--border); color: var(--text); }
.btn-ghost:hover { background: var(--bg); text-decoration: none; }
.btn-danger { background: var(--danger); color: #fff; }
.btn-ok { background: var(--ok); color: #fff; }
.btn-warn { background: var(--warn); color: #fff; }
.btn-block { display: block; width: 100%; padding: 10px; }

/* 提示框 */
.alert { padding: 10px 14px; border-radius: var(--radius); margin-bottom: 16px; font-size: 13px; }
.alert-error { background: #fdf0f0; border: 1px solid #e8c0c0; color: var(--danger); }
.alert-ok { background: #f0f7f1; border: 1px solid #b0d8b8; color: var(--ok); }

/* 页脚 */
.footer {
  text-align: center; padding: 20px;
  font-size: 11px; color: var(--text-sub);
  border-top: 1px solid var(--border); margin-top: 40px;
  letter-spacing: 1px;
}

/* Terminal archive: lightweight CSS-only pixel aesthetic. */
:root { --bg:#12141f; --surface:#202438; --surface-raised:#292e46; --border:#48516f; --text:#f4f0df; --text-sub:#aeb5ce; --accent:#8edcce; --accent-h:#c0fff1; --danger:#ff7d83; --ok:#a8dc7b; --warn:#ffd166; --radius:0; --font:"Courier New", "Microsoft YaHei", monospace; }
* { image-rendering:pixelated; }
body { background-color:var(--bg); background-image:linear-gradient(rgba(142,220,206,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(142,220,206,.025) 1px,transparent 1px); background-size:24px 24px; letter-spacing:.015em; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; opacity:.18; z-index:200; background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.04) 4px); }
a { color:var(--accent); }
.navbar { height:58px; padding:0 max(18px,calc((100vw - 1120px)/2)); background:rgba(18,20,31,.96); border-bottom:3px solid var(--accent); box-shadow:0 4px 0 rgba(0,0,0,.22); }
.nav-logo { color:var(--accent); font-size:14px; text-shadow:2px 2px 0 #2d5961; }
.nav-right { gap:8px; }.nav-right a { color:var(--text-sub); padding:5px 7px; border:1px solid transparent; }.nav-right a:hover { color:var(--text); border-color:var(--border); background:var(--surface); }
.nav-badge,.post-badge { border-radius:0; border:1px solid rgba(255,255,255,.4); box-shadow:2px 2px 0 rgba(0,0,0,.22); }
.container { max-width:1080px; padding:38px 20px 70px; }
.page-header { position:relative; margin-bottom:22px; padding:0 0 18px 18px; border-bottom:2px solid var(--border); }.page-header::before { content:">"; position:absolute; left:0; color:var(--accent); font-weight:bold; }.page-header h2 { font-size:22px; letter-spacing:.08em; }.page-sub { margin-top:6px; }.page-header .btn { margin-top:16px; }
.board-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.board-card,.profile-card,.reply-box,.auth-box,.admin-user-card,.admin-msg-card,.msg-item { background:var(--surface); border:2px solid var(--border); box-shadow:5px 5px 0 rgba(0,0,0,.3); }.board-card { min-height:136px; padding:20px; position:relative; overflow:hidden; }.board-card::after { content:"OPEN"; position:absolute; right:16px; bottom:12px; color:var(--accent); font-size:11px; opacity:.65; }.board-card:hover { transform:translate(-2px,-2px); border-color:var(--accent); box-shadow:7px 7px 0 #080a10; }.board-card-name { color:var(--text); font-size:16px; }.board-card-desc { margin-top:9px; }
.thread-list,.post-list { border:2px solid var(--border); border-radius:0; background:var(--border); box-shadow:5px 5px 0 rgba(0,0,0,.26); }.thread-row { gap:16px; padding:15px 18px; background:var(--surface); }.thread-row:hover { background:var(--surface-raised); }.thread-row.pinned { background:#30344d; }.thread-title { font-weight:600; }.thread-meta { gap:14px; font-size:11px; }.post-item { padding:20px; background:var(--surface); }.post-avatar img,.chat-avatar,.profile-avatar,.admin-avatar { border-radius:0; border:2px solid var(--border); }.post-avatar img { width:46px; height:46px; }.post-content { line-height:1.85; }.reply-box { padding:20px; }
.chat-wrap { min-height:calc(100vh - 172px); height:auto; background:rgba(32,36,56,.64); border:2px solid var(--border); box-shadow:5px 5px 0 rgba(0,0,0,.25); padding:18px; }.chat-log { min-height:300px; padding:16px 4px; }.chat-msg { padding:7px; }.chat-msg:hover { background:rgba(142,220,206,.06); }.chat-input-area { padding:14px 0 0; }.profile-card { padding:24px; }.profile-id { letter-spacing:.06em; }
input[type=text],input[type=password],input[type=number],input[type=email],select,textarea { border:2px solid var(--border); border-radius:0; background:#171a2a; color:var(--text); padding:10px 11px; } input:focus,select:focus,textarea:focus { border-color:var(--accent); box-shadow:3px 3px 0 rgba(142,220,206,.18); }
.btn { border-radius:0; border:2px solid transparent; padding:9px 17px; font-weight:bold; box-shadow:3px 3px 0 rgba(0,0,0,.32); }.btn:hover { transform:translate(-1px,-1px); box-shadow:4px 4px 0 rgba(0,0,0,.38); }.btn:active { transform:translate(2px,2px); box-shadow:1px 1px 0 rgba(0,0,0,.32); }.btn:disabled { opacity:.65; cursor:wait; transform:none; }.btn-primary { background:var(--accent); color:#112329; }.btn-primary:hover { background:var(--accent-h); color:#112329; }.btn-ghost { border-color:var(--border); color:var(--text); }
.field-counter { display:block; color:var(--text-sub); font-size:11px; margin-top:4px; text-align:right; }.field-counter.is-near-limit { color:var(--warn); }.alert { border-radius:0; border-width:2px; }.auth-box { margin:58px auto; background:var(--surface); }.auth-logo { color:var(--accent); text-shadow:3px 3px 0 #294d58; }.quest-option { background:#171a2a; border:2px solid var(--border); border-radius:0; }.quest-option:hover { background:var(--surface-raised); }.footer { border-top:2px solid var(--border); color:var(--text-sub); }
@media (max-width:680px) { .navbar { height:auto; min-height:54px; flex-wrap:wrap; gap:8px; padding:10px 14px; }.nav-right { gap:1px; flex-wrap:wrap; }.nav-right a { padding:4px 5px; font-size:12px; }.container { padding:28px 14px 54px; }.board-list { grid-template-columns:1fr; }.thread-row { align-items:flex-start; flex-direction:column; }.thread-meta { flex-wrap:wrap; }.post-item { gap:11px; padding:14px; }.post-avatar img { width:36px; height:36px; }.profile-card { gap:16px; }.form-row { grid-template-columns:1fr; }.chat-wrap { padding:12px; } }

/* Department identity uses text, a label and color so it remains readable for all players. */
.department-tag { display:inline-block; margin:0 7px 0 0; padding:1px 5px; border:1px solid currentColor; font-size:10px; line-height:1.35; letter-spacing:.04em; vertical-align:1px; opacity:.92; }
.post-badge.department-dept-0,.department-dept-0 { color:#82d39a; background-color:rgba(130,211,154,.08); }
.post-badge.department-dept-1,.department-dept-1 { color:#75bce8; background-color:rgba(117,188,232,.08); }
.post-badge.department-dept-2,.department-dept-2 { color:#e8edf5; background-color:rgba(232,237,245,.10); }
.post-badge.department-dept-3,.department-dept-3 { color:#ec9ab7; background-color:rgba(236,154,183,.08); }
.post-badge.department-dept-4,.department-dept-4 { color:#79d8d8; background-color:rgba(121,216,216,.08); }
.post-badge.department-dept-5,.department-dept-5 { color:#b89bea; background-color:rgba(184,155,234,.08); }
.post-badge.department-dept-6,.department-dept-6 { color:#ff6b35; background-color:rgba(255,107,53,.10); }
.post-badge.department-dept-7,.department-dept-7 { color:#ff777f; background-color:rgba(255,119,127,.08); }
.post-badge.department-dept-default,.department-dept-default { color:var(--text-sub); background-color:rgba(174,181,206,.08); }
.chat-author { font-weight:700; }.chat-msg-body { line-height:1.45; }.chat-text { margin-top:5px; }
.notification-nav { position:relative; }.notification-dot { display:inline-grid; place-items:center; min-width:15px; height:15px; padding:0 3px; margin-left:4px; border:1px solid #ffbec1; color:#fff; background:#b7434b; font-size:9px; line-height:1; }
.notification-list { display:grid; gap:13px; max-width:760px; }.notification-card { display:grid; grid-template-columns:auto 1fr; gap:15px; padding:18px; border:2px solid var(--border); background:var(--surface); box-shadow:5px 5px 0 rgba(0,0,0,.25); }.notification-card h3 { margin-bottom:4px; font-size:15px; }.notification-card p { color:var(--text-sub); }.notification-card time { display:block; margin-top:9px; color:var(--text-sub); font-size:11px; }.notification-signal { display:grid; place-items:center; width:27px; height:27px; border:2px solid #ff777f; color:#ff777f; font-weight:bold; }.notification-application-approved .notification-signal { border-color:var(--accent); color:var(--accent); }
.notification-card.is-unread { border-color:rgba(255,202,107,.72); background:linear-gradient(100deg,rgba(255,202,107,.09),var(--surface) 45%); }.notification-category { display:block; margin-bottom:5px; color:var(--text-sub); font-family:"Cascadia Mono","Courier New",monospace; font-size:10px; letter-spacing:.08em; }.notification-critical .notification-signal { border-color:#ff8383; color:#ff8383; }.notification-duty .notification-signal { border-color:#f0d58a; color:#f0d58a; }.notification-hr .notification-signal { border-color:var(--accent); color:var(--accent); }.notification-mention .notification-signal { border-color:#9fc7ff; color:#9fc7ff; }.notification-system .notification-signal { border-color:#aeb5ce; color:#aeb5ce; }
.questionnaire-entry { max-width:680px; }.quest-index { display:inline-block; margin-right:8px; color:var(--accent); font-size:11px; }.quest-option { align-items:flex-start; padding:13px 14px; }.quest-option:has(input:checked) { border-color:var(--accent); background:rgba(142,220,206,.08); }.quest-option input { margin-top:4px; accent-color:var(--accent); }

/* ===========================
   第2批功能样式
   =========================== */

/* --- 个人资料编辑 --- */
.profile-edit-card { background:var(--surface); border:2px solid var(--border); box-shadow:5px 5px 0 rgba(0,0,0,.25); padding:24px; max-width:640px; }
.profile-edit-avatar-row { display:flex; align-items:center; gap:18px; }
.profile-edit-avatar { width:72px; height:72px; border:2px solid var(--border); image-rendering:pixelated; object-fit:cover; }
.profile-edit-avatar-row > div { flex:1; }

/* --- 管理员公告横幅 --- */
.site-banner { background:var(--surface); border-bottom:2px solid var(--warn); box-shadow:0 2px 0 rgba(0,0,0,.22); padding:10px 16px; }
.site-banner-inner { max-width:1080px; margin:0 auto; display:flex; align-items:center; gap:12px; }
.site-banner-signal { color:var(--warn); font-weight:bold; flex-shrink:0; letter-spacing:.05em; }
.site-banner-text { flex:1; color:var(--text); font-size:13px; line-height:1.5; }
.site-banner-text strong { color:var(--warn); }
.site-banner time { color:var(--text-sub); font-size:11px; flex-shrink:0; }

/* --- 帖子表情回应 --- */
.post-reactions { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; padding-top:8px; border-top:1px dashed var(--border); }
.reaction-btn { display:inline-flex; align-items:center; gap:4px; padding:3px 8px; border:1px solid var(--border); background:#171a2a; color:var(--text-sub); font-size:13px; cursor:pointer; font-family:inherit; }
.reaction-btn:hover { border-color:var(--accent); color:var(--text); }
.reaction-btn.is-active { border-color:var(--accent); background:rgba(142,220,206,.14); color:var(--accent); }
.reaction-emoji { font-size:15px; }
.reaction-count { font-size:11px; min-width:10px; text-align:right; }

/* --- 帖子楼层号锚点跳转 --- */
.post-item { position:relative; }
.post-item:target { background:#30344d; box-shadow:inset 3px 0 0 var(--accent); }
.post-floor-link { color:var(--text-sub); font-size:11px; text-decoration:none; }
.post-floor-link:hover { color:var(--accent); text-decoration:underline; }
.jump-box { display:flex; gap:8px; align-items:center; margin:10px 0; font-size:12px; }
.jump-box input { width:70px; padding:4px 6px; }

/* --- 聊天长消息折叠 --- */
.chat-text.is-long { max-height:6em; overflow:hidden; position:relative; }
.chat-text.is-long::after { content:""; position:absolute; bottom:0; left:0; right:0; height:1.5em; background:linear-gradient(transparent, var(--surface)); }
.chat-text.is-expanded { max-height:none; }
.chat-text.is-expanded::after { display:none; }
.chat-expand-btn { display:inline-block; margin-top:4px; font-size:11px; color:var(--accent); cursor:pointer; background:none; border:none; padding:0; font-family:inherit; }
.chat-expand-btn:hover { text-decoration:underline; }

/* --- 后台导出/公告区 --- */
.admin-tool-row { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.admin-banner-form { background:var(--surface); border:2px solid var(--border); box-shadow:5px 5px 0 rgba(0,0,0,.25); padding:16px; margin-bottom:12px; }
.admin-banner-form textarea { width:100%; resize:vertical; margin-bottom:8px; }

/* --- Social, private messages and voting --- */
.profile-actions { display:flex; gap:10px; flex-wrap:wrap; margin:0 0 22px; }.profile-actions form { display:inline; }
.chat-header-with-status { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; }.online-status { display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border:1px solid var(--border); color:var(--text-sub); font-size:12px; white-space:nowrap; }.online-status i { width:8px; height:8px; background:#69d687; box-shadow:0 0 7px #69d687; }.chat-avatar-link { position:relative; display:block; width:32px; height:32px; flex-shrink:0; }.chat-avatar-link.is-online::after { content:""; position:absolute; right:-2px; bottom:-2px; width:9px; height:9px; border:2px solid var(--surface); background:#69d687; border-radius:50%; }.chat-text mark { color:#17242a; background:var(--warn); padding:0 2px; }
.conversation-list { display:grid; gap:10px; max-width:780px; }.conversation-card { display:flex; align-items:center; gap:13px; padding:13px; border:2px solid var(--border); background:var(--surface); box-shadow:4px 4px 0 rgba(0,0,0,.22); }.conversation-card:hover { background:var(--surface-raised); text-decoration:none; }.conversation-card img { width:42px; height:42px; object-fit:cover; border:2px solid var(--border); }.conversation-card div { min-width:0; flex:1; }.conversation-card p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--text-sub); font-size:12px; }
.direct-message-log { display:flex; flex-direction:column; gap:9px; max-width:760px; min-height:250px; margin-bottom:16px; }.direct-message { align-self:flex-start; max-width:min(76%,600px); padding:10px 13px; border:2px solid var(--border); background:var(--surface); box-shadow:3px 3px 0 rgba(0,0,0,.2); }.direct-message.is-mine { align-self:flex-end; border-color:var(--accent); background:#243c46; }.direct-message p { white-space:pre-wrap; word-break:break-word; }.direct-message time { display:block; margin-top:5px; color:var(--text-sub); font-size:10px; text-align:right; }.direct-message-form { max-width:760px; display:grid; gap:9px; }.direct-message-form textarea { resize:vertical; }
.vote-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:14px; }.vote-card { display:flex; flex-direction:column; align-items:flex-start; gap:9px; padding:16px; background:var(--surface); border:2px solid var(--border); box-shadow:5px 5px 0 rgba(0,0,0,.24); }.vote-card.is-selected { border-color:var(--accent); background:#243c46; }.vote-card img { width:48px; height:48px; object-fit:cover; border:2px solid var(--border); }.vote-count { color:var(--text-sub); font-size:12px; }.vote-card .btn { margin-top:auto; width:100%; }.admin-vote-status { padding:14px; border:2px solid var(--border); background:var(--surface); }
@media (max-width:680px) { .chat-header-with-status { flex-direction:column; }.direct-message { max-width:90%; } }

/* --- Daytime random events --- */
.daytime-event-overlay { position:fixed; inset:0; z-index:500; display:grid; place-items:center; padding:18px; background:rgba(7,9,15,.76); backdrop-filter:blur(2px); }
.daytime-event-card { width:min(100%,560px); padding:24px; border:3px solid var(--warn); background:var(--surface); box-shadow:9px 9px 0 #080a10, 0 0 0 1px rgba(255,209,102,.25); }
.daytime-event-signal { margin-bottom:18px; color:var(--warn); font-size:12px; font-weight:bold; letter-spacing:.13em; }
.daytime-event-description { font-size:16px; line-height:1.8; }
.daytime-event-prompt { margin:20px 0 10px; color:var(--text-sub); font-size:13px; }
.daytime-event-options { display:grid; gap:8px; }
.daytime-event-option { width:100%; padding:11px 12px; border:2px solid var(--border); background:#171a2a; color:var(--text); font:inherit; text-align:left; cursor:pointer; }
.daytime-event-option:hover:not(:disabled),.daytime-event-option:focus-visible { border-color:var(--accent); background:var(--surface-raised); outline:none; }
.daytime-event-option:disabled { opacity:.55; cursor:wait; }
.daytime-event-aftermath { margin:24px 0 16px; color:var(--warn); font-size:15px; }
.notification-link,.jump-link { display:inline-block; margin-top:8px; color:var(--accent); font-size:12px; }
.unread-badge { display:inline-block; margin-left:8px; padding:1px 5px; border:1px solid #ffbec1; color:#fff; background:#b7434b; font-size:10px; font-weight:normal; vertical-align:2px; }
.is-first-unread,.is-focus-message { border-color:var(--warn) !important; background:rgba(255,202,107,.08) !important; box-shadow:0 0 0 2px rgba(255,202,107,.16); }
.avatar-cropper { position:fixed; inset:0; z-index:700; display:grid; place-items:center; padding:18px; background:rgba(7,9,15,.8); }
.avatar-cropper[hidden] { display:none; }
.avatar-cropper-dialog { width:min(100%,420px); padding:20px; border:2px solid var(--border); background:var(--surface); box-shadow:6px 6px 0 rgba(0,0,0,.35); }
.avatar-cropper-dialog h3 { margin-bottom:6px; }.avatar-cropper-dialog p { margin-bottom:16px; color:var(--text-sub); font-size:13px; }
.crop-viewport { position:relative; width:min(72vw,280px); aspect-ratio:1; margin:0 auto; overflow:hidden; cursor:grab; border:2px solid var(--warn); background:#090b12; touch-action:none; }
.crop-viewport:active { cursor:grabbing; }.crop-viewport::after { content:""; position:absolute; inset:0; border:999px solid rgba(0,0,0,.16); pointer-events:none; }
.crop-viewport img { position:absolute; top:0; left:0; max-width:none; user-select:none; pointer-events:none; }
.crop-zoom { display:flex; align-items:center; gap:10px; margin:16px auto; max-width:280px; font-size:12px; }.crop-zoom input { flex:1; accent-color:var(--accent); }
.duty-schedule-card { display:flex; align-items:center; gap:14px; margin:0 0 16px; padding:16px 18px; border:2px solid var(--accent); background:rgba(142,220,206,.08); box-shadow:5px 5px 0 rgba(0,0,0,.2); color:var(--text); }
.duty-schedule-card:hover { background:rgba(142,220,206,.14); text-decoration:none; transform:translate(-1px,-1px); }.duty-schedule-card strong { display:block; }.duty-schedule-card small { display:block; margin-top:4px; color:var(--text-sub); }.duty-schedule-signal { color:var(--accent); font-size:12px; }.duty-schedule-arrow { margin-left:auto; color:var(--accent); font-size:24px; }
.duty-schedule-sheet { border:2px solid var(--border); background:var(--surface); box-shadow:6px 6px 0 rgba(0,0,0,.28); }.duty-schedule-heading { display:flex; justify-content:space-between; gap:12px; padding:15px 18px; border-bottom:2px solid var(--border); color:var(--accent); font-size:13px; letter-spacing:.06em; }.duty-schedule-heading time { color:var(--text-sub); }
.duty-columns { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr); }.duty-panel { padding:20px; }.duty-panel + .duty-panel { border-left:2px solid var(--border); }.duty-panel-title { display:flex; justify-content:space-between; align-items:baseline; gap:12px; padding-bottom:11px; border-bottom:1px solid var(--border); color:var(--accent); font-size:17px; font-weight:bold; }.duty-panel-title small { color:var(--text-sub); font-size:11px; font-weight:normal; }
.duty-department-group { padding:13px 0; border-bottom:1px dashed rgba(174,181,206,.26); }.duty-department-group:last-child { border-bottom:0; }.duty-department-group h3 { margin-bottom:7px; color:var(--text-sub); font-size:12px; }.duty-department-group ul { display:flex; flex-wrap:wrap; gap:6px 14px; list-style:none; }.duty-department-group li { font-size:13px; }
.duty-night-panel { background:rgba(255,202,107,.035); }.duty-night-note { margin:14px 0; color:var(--text-sub); font-size:12px; line-height:1.7; }.night-duty-list { display:grid; gap:10px; list-style:none; counter-reset:shift; }.night-duty-list li { display:flex; flex-direction:column; gap:5px; padding:12px; border:1px solid var(--border); background:#171a2a; }.night-duty-list span { color:var(--text-sub); font-size:11px; }.night-duty-list strong { color:var(--warn); font-size:14px; }.night-duty-list .is-empty { opacity:.55; }.night-duty-list .is-empty strong { color:var(--text-sub); }
.night-shift-admin-row { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--border); }.night-shift-admin-row p { margin-top:5px; color:var(--text-sub); }.night-shift-replace-form { display:flex; gap:8px; align-items:center; }.night-shift-replace-form select { max-width:220px; }
@media (max-width:680px) { .duty-columns { grid-template-columns:1fr; }.duty-panel + .duty-panel { border-left:0; border-top:2px solid var(--border); }.duty-schedule-heading,.duty-panel-title,.night-shift-admin-row { align-items:flex-start; flex-direction:column; }.night-shift-replace-form { width:100%; }.night-shift-replace-form select { flex:1; min-width:0; } }
.duty-day-groups { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; padding-top:13px; }.duty-department-group { padding:0; border:0; color:var(--text); }.duty-department-group h3 { margin:0; padding:8px 10px; border-left:4px solid currentColor; background:rgba(255,255,255,.035); color:inherit; font-size:13px; }.duty-department-group ul { display:block; margin:0; border:1px solid rgba(174,181,206,.22); border-top:0; }.duty-department-group li { padding:8px 12px; border-bottom:1px solid rgba(174,181,206,.16); font-size:13px; }.duty-department-group li:last-child { border-bottom:0; }.night-duty-list strong.department-dept-0,.night-duty-list strong.department-dept-1,.night-duty-list strong.department-dept-2,.night-duty-list strong.department-dept-3,.night-duty-list strong.department-dept-4,.night-duty-list strong.department-dept-5,.night-duty-list strong.department-dept-6,.night-duty-list strong.department-dept-7 { background:none; }
@media (max-width:680px) { .duty-day-groups { grid-template-columns:1fr; } }
.duty-board-card { border-color:var(--warn); background:linear-gradient(135deg,rgba(255,202,107,.08),rgba(157,95,121,.10)); }.duty-board-card::after { content:"NIGHT DUTY"; color:var(--warn); }
.duty-log-shell { max-width:1160px; margin:0 auto; border:2px solid #566178; background:#090b10; color:#cbd6dc; box-shadow:8px 8px 0 #050609; font-family:"Cascadia Mono","Courier New",monospace; letter-spacing:.035em; }.duty-log-topbar { display:flex; justify-content:space-between; gap:15px; padding:10px 14px; border-bottom:1px solid #566178; background:#131923; color:#aebdca; font-size:12px; }.duty-log-topbar strong { color:#f0d58a; }.duty-live-dot { display:inline-block; width:8px; height:8px; margin-right:6px; background:#d95959; box-shadow:0 0 8px #d95959; animation:duty-blink 1.2s steps(2,end) infinite; }
.duty-log-layout { display:grid; grid-template-columns:minmax(0,1fr) 260px; }.monitor-console { min-width:0; padding:17px; border-right:1px solid #566178; }.monitor-console-head { display:flex; justify-content:space-between; gap:12px; margin-bottom:12px; color:#95a5b4; font-size:11px; }.monitor-console-head strong { display:block; margin-top:4px; color:#f0d58a; font-size:16px; letter-spacing:.08em; }.monitor-console-head #monitorStatus { color:#6db796; align-self:flex-start; }
.monitor-screen { position:relative; min-height:455px; overflow:hidden; border:2px solid #3d4b59; background:radial-gradient(ellipse at center,#142128 0%,#0a1115 62%,#050608 100%); box-shadow:inset 0 0 36px #000,0 0 0 3px #111923; }.monitor-screen::before { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,rgba(123,215,179,.025),transparent 34%,rgba(226,113,113,.025)),radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.42)); z-index:2; }.monitor-scanlines { position:absolute; inset:0; z-index:3; pointer-events:none; opacity:.26; background:repeating-linear-gradient(0deg,rgba(153,209,183,.08) 0,rgba(153,209,183,.08) 1px,transparent 1px,transparent 4px); animation:monitor-shiver 8s steps(2,end) infinite; }.monitor-corner { position:absolute; z-index:4; color:#769383; font-size:10px; }.top-left { top:10px; left:12px; color:#d96b6b; }.top-right { top:10px; right:12px; }.bottom-left { bottom:10px; left:12px; }.bottom-right { bottom:10px; right:12px; }
.monitor-text { position:relative; z-index:1; padding:52px 24px 38px; color:#b9d7c6; text-shadow:0 0 6px rgba(120,221,181,.25); font-size:14px; line-height:1.95; white-space:normal; }.monitor-line { padding:5px 0; border-bottom:1px dashed rgba(153,209,183,.17); word-break:break-word; }.monitor-line time { margin-right:8px; color:#6b9180; font-size:11px; }.monitor-line em { margin-left:8px; color:#90a1aa; font-size:11px; font-style:normal; }.monitor-line.is-suspicious { color:#f0d58a; }.monitor-line.is-urgent { color:#ff8686; font-weight:bold; text-shadow:0 0 8px rgba(255,91,91,.45); }.monitor-boot { color:#728c80; }
.monitor-zones { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:14px; }.zone-button { position:relative; padding:10px 6px; border:1px solid #566178; background:#111720; color:#b8c6ce; font:inherit; font-size:12px; cursor:pointer; }.zone-button:hover,.zone-button.is-active { border-color:#f0d58a; color:#f0d58a; background:#202129; }.zone-button.has-new-event::after { content:""; position:absolute; top:5px; right:5px; width:6px; height:6px; background:#d95959; box-shadow:0 0 6px #d95959; }
.duty-side-panel { display:flex; flex-direction:column; background:#10151d; }.stamina-panel,.duty-actions,.duty-notice { padding:17px; border-bottom:1px solid #566178; }.panel-label { display:flex; justify-content:space-between; color:#aebdca; font-size:12px; }.panel-label strong { color:#f0d58a; }.stamina-track { height:11px; margin:11px 0 8px; overflow:hidden; border:1px solid #4f5e6b; background:#080b0f; }.stamina-track i { display:block; height:100%; background:linear-gradient(90deg,#769f79,#c8d58c); transition:width .35s ease; }.stamina-track i.is-low { background:linear-gradient(90deg,#a13e4b,#e56a5f); }.stamina-panel p,.duty-actions p,.duty-notice p { color:#84939f; font-size:11px; line-height:1.7; }.duty-actions { display:grid; gap:8px; }.duty-actions h2,.duty-notice h2 { margin:0; color:#b9c8d2; font-size:13px; }.duty-action { padding:10px; border:1px solid #52606c; background:#171f28; color:#d0dce2; font:inherit; font-size:12px; cursor:pointer; }.duty-action:hover:not(:disabled) { border-color:#f0d58a; color:#f0d58a; }.duty-action:disabled { opacity:.38; cursor:not-allowed; }.duty-action-alert { border-color:#7d4c55; }.duty-action-alert:hover:not(:disabled) { border-color:#e36f72; color:#ff9898; }.duty-action-fridge { margin-top:8px; border-color:#4d6984; color:#9cc5e7; }.duty-notice { margin-top:auto; border-bottom:0; }
@keyframes duty-blink { 50% { opacity:.25; } } @keyframes monitor-shiver { 25% { transform:translateY(1px); } 26% { transform:translateY(-1px); } 27% { transform:none; } }
@media (max-width:780px) { .duty-log-layout { grid-template-columns:1fr; }.monitor-console { border-right:0; border-bottom:1px solid #566178; }.monitor-screen { min-height:390px; }.duty-log-topbar { flex-wrap:wrap; }.duty-side-panel { display:grid; grid-template-columns:1fr 1fr; }.duty-notice { grid-column:span 2; } }
.night-reward-overlay { position:fixed; inset:0; z-index:800; display:grid; place-items:center; padding:18px; background:rgba(4,6,10,.82); backdrop-filter:blur(2px); }.night-reward-card { width:min(100%,430px); padding:28px; border:2px solid var(--warn); background:linear-gradient(145deg,#1a1d2b,#11131e); box-shadow:8px 8px 0 #050609,0 0 28px rgba(255,202,107,.11); text-align:center; }.night-reward-signal { display:block; margin-bottom:17px; color:var(--warn); font-family:"Cascadia Mono","Courier New",monospace; font-size:11px; letter-spacing:.09em; }.night-reward-card h2 { margin-bottom:15px; color:var(--text); font-size:19px; }.night-reward-card p { margin-bottom:22px; color:var(--text-sub); line-height:1.9; }.night-reward-card .btn { min-width:120px; }
.fridge-screen { position:relative; min-height:455px; overflow:hidden; border:2px solid #6b7881; background:linear-gradient(90deg,#38434a 0,#59666b 7%,#2a3339 8%,#4d5a60 50%,#263037 51%,#59666b 93%,#38434a 100%); box-shadow:inset 0 0 0 4px #1b2429,inset 0 0 30px #0a0e11; color:#e4eef0; font-family:"Cascadia Mono","Courier New",monospace; }.fridge-top { display:flex; justify-content:space-between; gap:10px; padding:11px 13px; border-bottom:2px solid #1c262b; background:#202a2f; color:#a5d0d4; font-size:11px; letter-spacing:.08em; }.fridge-top button { border:1px solid #718a91; background:#182126; color:#d1e3e4; font:inherit; font-size:11px; cursor:pointer; }.fridge-status { margin:12px 16px 8px; color:#d3e7d0; font-size:11px; }.fridge-door { display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:8px 16px 12px; }.fridge-shelf { min-height:290px; border:2px solid #1d282e; background:linear-gradient(#b6d2d6,#6e8e94 4%,#9cbcc0 7%,#58767d 8%,#bfd9da 9%,#78999e 100%); box-shadow:inset 0 0 22px rgba(13,33,38,.62); }.freezer-shelf { background:linear-gradient(#d1edf1,#8db7c0 4%,#b7dfe5 7%,#6b9ba7 8%,#c3e6ea 9%,#83afb8 100%); }.fridge-shelf h2 { margin:0; padding:8px; border-bottom:2px solid rgba(28,47,52,.62); color:#223439; font-size:12px; text-align:center; }.fridge-items { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; }.fridge-item { min-height:88px; padding:7px 4px; border:1px solid rgba(23,43,48,.65); background:rgba(235,250,245,.34); color:#1c3438; font:inherit; cursor:pointer; text-align:center; }.fridge-item:hover { background:rgba(255,255,255,.62); transform:translateY(-1px); }.fridge-item pre,.fridge-detail pre { margin:0 0 5px; color:#1e5151; font:inherit; font-size:11px; line-height:1.05; }.fridge-item span { display:block; font-size:11px; word-break:break-word; }.fridge-item.is-hidden-item { border-style:dashed; color:#462e3a; background:rgba(133,89,105,.2); }.fridge-empty { grid-column:span 2; color:#31494d; font-size:11px; }.fridge-bottom { display:flex; align-items:center; gap:10px; min-height:45px; padding:9px 16px; border-top:2px solid #1c262b; background:#253238; }.fridge-bottom span { color:#d9e8d0; font-size:11px; }.fridge-detail { position:absolute; inset:0; z-index:8; display:grid; place-items:center; padding:16px; background:rgba(10,17,20,.73); }.fridge-detail-card { width:min(100%,330px); padding:18px; border:2px solid #d9e6d1; background:#25363a; box-shadow:5px 5px 0 #11191c; text-align:center; }.fridge-detail-card pre { color:#aee0d4; font-size:16px; }.fridge-detail-card h2 { margin-bottom:13px; color:#edf5e9; font-size:16px; }.fridge-detail-card p { margin:7px 0; color:#c4d0ca; font-size:12px; line-height:1.6; }.fridge-detail-card strong { color:#f0d58a; }.fridge-detail-actions { display:flex; justify-content:center; gap:8px; margin-top:16px; }.fridge-detail-actions .duty-action { min-width:84px; }
@media (max-width:780px) { .fridge-screen { min-height:390px; }.fridge-door { grid-template-columns:1fr; overflow:auto; max-height:390px; }.fridge-shelf { min-height:180px; }.fridge-items { grid-template-columns:repeat(3,minmax(0,1fr)); }.fridge-item { min-height:74px; } }
.fridge-status.is-bad-taste { color:#e98c90; text-shadow:0 0 7px rgba(220,91,97,.45); }

/* --- Document posts --- */
.document-post { max-width:900px; padding:28px; border:2px solid var(--border); background:var(--surface); box-shadow:7px 7px 0 rgba(0,0,0,.28); }
.document-post-header { padding-bottom:18px; border-bottom:1px solid var(--border); }.document-stamp { display:inline-block; margin-bottom:9px; color:var(--warn); font-family:"Cascadia Mono","Courier New",monospace; font-size:11px; letter-spacing:.1em; }.document-post-header p { color:var(--text-sub); font-size:13px; }
.document-index { margin:24px 0 30px; padding:18px 20px; border:1px solid rgba(255,202,107,.55); background:rgba(255,202,107,.045); }.document-index h3 { margin:0 0 13px; color:var(--warn); font-size:14px; letter-spacing:.08em; }.document-index ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px 22px; padding:0; list-style:none; }.document-index a { display:flex; gap:10px; color:var(--text); font-size:13px; line-height:1.55; }.document-index a:hover { color:var(--accent); text-decoration:none; }.document-index a span { min-width:22px; color:var(--accent); font-family:"Cascadia Mono","Courier New",monospace; }
.document-section { scroll-margin-top:18px; padding:26px 0; border-top:1px solid rgba(174,181,206,.25); }.document-section:first-child { border-top:0; }.document-section h3 { margin:0 0 15px; color:var(--warn); font-size:18px; line-height:1.45; }.document-section p { margin:0 0 9px; color:#d9dcea; font-size:14px; line-height:1.9; white-space:pre-wrap; }.document-back-to-index { display:inline-block; margin-top:8px; color:var(--accent); font-size:11px; }
.document-table-wrap { margin:16px 0; overflow-x:auto; border:1px solid rgba(174,181,206,.36); }.document-table { width:100%; min-width:560px; border-collapse:collapse; color:#d9dcea; font-size:13px; line-height:1.65; }.document-table th,.document-table td { padding:11px 13px; border:1px solid rgba(174,181,206,.28); text-align:left; vertical-align:top; }.document-table th { color:var(--warn); background:rgba(255,202,107,.08); font-weight:700; }.document-table td { background:rgba(10,14,28,.28); }
.restricted-document { max-width:560px; margin:70px auto; padding:34px; border:2px solid #944f57; background:var(--surface); box-shadow:7px 7px 0 rgba(0,0,0,.3); text-align:center; }.restricted-document span { color:#e98c90; font-family:"Cascadia Mono","Courier New",monospace; font-size:11px; letter-spacing:.1em; }.restricted-document h2 { margin:17px 0 10px; }.restricted-document p { margin-bottom:23px; color:var(--text-sub); }
.onboarding-overlay { position:fixed; inset:0; z-index:820; display:grid; place-items:center; padding:18px; background:rgba(4,6,10,.68); backdrop-filter:blur(2px); }.onboarding-card { width:min(100%,470px); padding:28px; border:2px solid var(--accent); background:linear-gradient(145deg,#1a2131,#11141e); box-shadow:8px 8px 0 rgba(0,0,0,.4); text-align:center; }.onboarding-card > span { color:var(--accent); font-family:"Cascadia Mono","Courier New",monospace; font-size:11px; letter-spacing:.09em; }.onboarding-card h2 { margin:17px 0 12px; }.onboarding-card p { margin-bottom:22px; color:var(--text-sub); line-height:1.8; }.onboarding-card div { display:flex; justify-content:center; flex-wrap:wrap; gap:9px; }
.activity-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:15px; }.activity-grid > div { min-height:84px; padding:13px; border:1px solid rgba(174,181,206,.34); background:rgba(174,181,206,.05); }.activity-grid strong { display:block; color:var(--accent); font-family:"Cascadia Mono","Courier New",monospace; font-size:24px; line-height:1.1; }.activity-grid span { display:block; margin-top:7px; color:var(--text-sub); font-size:11px; line-height:1.35; }.activity-grid .activity-alert strong { color:#f0d58a; }.admin-stop-engine-form { margin-top:12px; }
.night-duty-nav.has-pending { color:#f0d58a; text-shadow:0 0 8px rgba(240,213,138,.28); }.notification-dot.is-hidden { display:none; }
.duty-log-shell { filter:saturate(.78); }.duty-log-shell .monitor-screen { animation:monitor-flicker 13s steps(1,end) infinite; }.duty-log-shell .monitor-line.is-suspicious { animation:monitor-shiver 8s infinite; }.duty-log-shell .monitor-line.is-urgent { animation:monitor-shiver 3.2s infinite; }.zone-button.has-new-event::after { content:attr(data-pending); display:grid; place-items:center; min-width:13px; height:13px; padding:0 2px; border-radius:8px; color:#fff; font-size:9px; line-height:1; }
.restricted-document { filter:saturate(.58); }.restricted-document::after { content:"ACCESS DENIED"; display:block; margin-top:18px; color:rgba(233,140,144,.35); font-family:"Cascadia Mono","Courier New",monospace; font-size:10px; letter-spacing:.18em; animation:restricted-glitch 7s steps(1,end) infinite; }
.chat-msg.is-anomaly-record { filter:saturate(.45); border-left:2px solid rgba(227,111,114,.55); padding-left:9px; animation:anomaly-drift 11s steps(1,end) infinite; }.chat-msg.is-anomaly-record .chat-text { color:#c5bdc0; text-shadow:1px 0 rgba(190,82,91,.2); }
@keyframes monitor-flicker { 0%,93%,100% { opacity:1; } 94% { opacity:.88; } 95% { opacity:1; } 96% { opacity:.94; } } @keyframes restricted-glitch { 0%,92%,100% { transform:none; opacity:.35; } 93% { transform:translateX(2px); opacity:.7; } 94% { transform:translateX(-1px); } } @keyframes anomaly-drift { 0%,89%,100% { transform:none; } 90% { transform:translateX(1px); } 91% { transform:translateX(-1px); } }
@media (max-width:680px) { .activity-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
  @media (max-width:680px) { .document-post { padding:18px; }.document-index ol { grid-template-columns:1fr; }.document-section p { font-size:13px; line-height:1.8; } }
