/* ==========================================================================
 * 曙光舰桥 v3 设计层
 * 加载顺序：styles.css（旧样式）→ bridge.css（本文件）。
 * 规则：
 * - 颜色只用 styles.css 顶部的令牌（--am 曙光金、--cy 星门青 等），主题只换令牌。
 * - 覆盖旧组件时用 #bridge 前缀（<body id="bridge">），只改视觉（颜色、边框、阴影、字体、圆角），
 *   不改布局，所有 data-* 钩子不动。
 * - 特效分三档：html[data-fx="rich|standard|eco"]，省电档不动画、不模糊。
 * ========================================================================== */

/* ---------- 字体（自托管，OFL；中文宋体按常用度拆两包，按需下载） ---------- */
@font-face {
  font-family: "Orbitron";
  font-weight: 500;
  font-display: swap;
  src: url("fonts/orbitron-latin-500-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Orbitron";
  font-weight: 700;
  font-display: swap;
  src: url("fonts/orbitron-latin-700-normal.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-weight: 400;
  font-display: swap;
  src: url("fonts/jetbrains-mono-latin-400-normal.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-weight: 600 800;
  font-display: swap;
  src: url("fonts/jetbrains-mono-latin-600-normal.woff2") format("woff2");
}
@font-face {
  font-family: "Bridge Serif";
  font-weight: 600 900;
  font-display: swap;
  src: url("fonts/noto-serif-sc-700-a.woff2") format("woff2");
  unicode-range: U+3000-30FF, U+3400-9FFF, U+F900-FAFF, U+FE10-FE6F, U+FF00-FFEF;
}
@font-face {
  font-family: "Bridge Serif";
  font-weight: 600 900;
  font-display: swap;
  src: url("fonts/noto-serif-sc-700-b.woff2") format("woff2");
  unicode-range: U+4e08,U+4e11,U+4e18-4e19,U+4e1b,U+4e1d,U+4e27,U+4e2b,U+4e39,U+4e3d,U+4e43,U+4e4d,U+4e4f,U+4e52-4e54,U+4e56,U+4e59,U+4e5e,U+4e61,U+4e73,U+4e7e,U+4e95,U+4ea2,U+4ea8-4ea9,U+4ead,U+4ec1,U+4ec6,U+4ed4-4ed5,U+4ed9,U+4edf,U+4ef2,U+4eff,U+4f0e,U+4f10,U+4f17,U+4f1e-4f1f,U+4f26,U+4f36,U+4f3a,U+4f43,U+4f50-4f51,U+4f5b,U+4f69,U+4f6f-4f70,U+4f84,U+4f88,U+4f97,U+4fa3,U+4fa5,U+4fa8-4fa9,U+4faf,U+4fca,U+4fcf-4fd0,U+4fd8,U+4fde,U+4fe9,U+4fed,U+4ffa,U+5014,U+5018,U+501a,U+5021,U+5026,U+502a,U+503a,U+5080,U+5088,U+508d,U+50a3,U+50b2,U+50da,U+50f3,U+50f5,U+50fb,U+5112,U+5121,U+5144,U+5154,U+515a,U+5162,U+5170,U+5174,U+5180,U+5188-5189,U+5195,U+519c,U+51a4,U+51af,U+51b6,U+51c4,U+51c9,U+51cb-51cc,U+51db,U+51dd,U+51f3,U+51f8-51f9,U+51ff,U+5201,U+520a,U+5211,U+5218,U+5228,U+522e,U+5239-523a,U+5241,U+5243,U+5250,U+5256,U+527f,U+5288,U+529d,U+52aa,U+52b2,U+52c3,U+52c7,U+52c9,U+52fa,U+5300,U+5306,U+5308,U+531d,U+5320-5321,U+5323,U+532a,U+533b,U+5348-5349,U+534e,U+5351-5353,U+535c,U+535e,U+5362,U+5364,U+5367,U+536f,U+5375,U+5377-5378,U+537f,U+5389,U+538c,U+5395,U+5398,U+539a,U+53a2,U+53a6,U+53a8-53a9,U+53bf,U+53c1,U+53c9,U+53d4,U+53db,U+53ed-53ee,U+53f9,U+53fc,U+5401,U+540a,U+540f,U+5413,U+5415,U+541d-5420,U+5428-5429,U+542d-542e,U+5431,U+5434-5435,U+5439,U+543b-543c,U+5446,U+5450,U+5455,U+545b-545c,U+5475,U+5478,U+547b,U+5480,U+5486,U+548e-5490,U+5495-5496,U+5499,U+54a8,U+54ac,U+54af,U+54b1,U+54b3,U+54b8,U+54bd,U+54c0,U+54c4,U+54c6-54c7,U+54c9,U+54ce,U+54d1,U+54d7,U+54df,U+54e6,U+54e8-54e9,U+54ed-54ee,U+54f2,U+54fc,U+5501,U+5506-5507,U+5509,U+5510,U+552c,U+5531,U+553e,U+5543-5544,U+5561,U+5564,U+5566,U+556a,U+556e,U+5578,U+557c,U+5580,U+5582,U+5587,U+5589,U+5598,U+559d,U+55a7,U+55b3,U+55bb,U+55c5,U+55d3,U+55dc,U+55e1,U+55e3,U+55fd,U+5609,U+560e,U+5618,U+5631,U+5634,U+5636,U+563b,U+563f,U+564e,U+566c,U+5676,U+568e-568f,U+56a3,U+56b7,U+56bc,U+56ca,U+56da,U+56ed,U+56f0-56f1,U+5703,U+5723,U+572d,U+574e,U+575b,U+575d-575e,U+5761,U+5764,U+576a,U+576f,U+5777,U+5782,U+5784,U+579b,U+57a2-57a3,U+57a6,U+57c2,U+57cb,U+57d4,U+57e0,U+57f9,U+5802,U+5811,U+5815,U+5824,U+582a,U+5830,U+5858,U+5885,U+5892-5893,U+589f,U+58a8-58a9,U+58d5,U+58e4,U+58ec,U+58ee,U+58f6,U+58f9,U+590f,U+5915,U+592f,U+5937-5938,U+5944,U+5948-5949,U+594b,U+594e,U+5954,U+5960,U+5962,U+5974,U+5976,U+5986,U+598a,U+5992-5993,U+5999,U+59a8,U+59ae,U+59bb,U+59d1,U+59da,U+59dc,U+59e5,U+59e8,U+59ec,U+59fb,U+59ff,U+5a03-5a04,U+5a07,U+5a18,U+5a1f-5a20,U+5a25,U+5a29,U+5a36,U+5a46,U+5a49,U+5a6a,U+5a74,U+5a76,U+5a7f,U+5a9a,U+5ab3,U+5ac1-5ac2,U+5ac9,U+5ae1,U+5ae9,U+5b54-5b55,U+5b59,U+5b5c-5b5d,U+5b5f,U+5b63-5b64,U+5b69-5b6a,U+5b75,U+5b7a,U+5b7d,U+5b85,U+5b8b,U+5b8f,U+5b97,U+5b9b,U+5ba0,U+5ba6,U+5baa,U+5bb4-5bb5,U+5bbe-5bbf,U+5bc4-5bc5,U+5bd0,U+5bd3,U+5bdd-5bde,U+5be5,U+5be8,U+5bfa,U+5c09,U+5c18,U+5c27,U+5c39,U+5c3f,U+5c41,U+5c48-5c4a,U+5c4e,U+5c60-5c61,U+5c6f,U+5c7f,U+5c82,U+5c94,U+5c9b,U+5cad,U+5cb8,U+5cbf,U+5ce1,U+5ce6,U+5ce8,U+5cea,U+5ced,U+5cfb,U+5d07,U+5d0e,U+5d14,U+5d16,U+5d29,U+5d2d,U+5dcd,U+5ddd-5dde,U+5de9,U+5deb,U+5df3,U+5df7,U+5dfe,U+5e06,U+5e10,U+5e18,U+5e1a-5e1c,U+5e3d,U+5e4c,U+5e62,U+5e78,U+5e7b-5e7d,U+5e84,U+5e8a,U+5e90,U+5e99-5e9a,U+5eb6,U+5eb8,U+5eca,U+5ed3,U+5ed6,U+5ef7,U+5f0a,U+5f13,U+5f17-5f18,U+5f1b,U+5f1f,U+5f27,U+5f5d,U+5f64,U+5f66,U+5f6a,U+5f6c-5f6d,U+5f70,U+5f8a,U+5f90,U+5f98,U+5fbd,U+5fcc,U+5ff1,U+5ffb,U+5fff-6000,U+6002,U+6014-6016,U+601c,U+6020,U+6028,U+602f,U+6043,U+604d,U+6050,U+6055,U+6064,U+606b-606d,U+6070,U+6073,U+607c,U+607f,U+6084,U+608d,U+6094,U+609f-60a0,U+60a3,U+60a6,U+60af,U+60b2,U+60b8,U+60bc,U+60ca-60cb,U+60d1,U+60d5,U+60dc,U+60df-60e0,U+60e6-60e8,U+60eb,U+60ed-60ee,U+60f6,U+60f9-60fa,U+6101,U+6108-6109,U+611a,U+6124,U+6127,U+6148,U+614c,U+6151,U+6155,U+6167-6168,U+6170,U+6177,U+618b,U+618e,U+61a8,U+61be,U+61c8,U+61ca,U+61e6,U+620a,U+620c-620e,U+621a,U+622e,U+6234,U+6247,U+6252,U+6254,U+625b,U+6266,U+626c-626d,U+6273,U+6276,U+627c,U+6289,U+6292,U+62a0-62a1,U+62a8,U+62b1,U+62bf,U+62c2,U+62c4,U+62c7-62c8,U+62cc,U+62ce,U+62d0,U+62d4,U+62d8-62d9,U+62e2-62e3,U+62e7-62e8,U+62ed,U+62ef,U+62f1,U+62f3-62f4,U+630e,U+631a-631b,U+631d,U+631f-6320,U+6323,U+632a-632b,U+633a,U+633d,U+6342,U+6345-6346,U+6349,U+634c-634f,U+6361,U+6363,U+6367,U+6376,U+637b,U+6380,U+6382,U+6387,U+638c,U+638f-6390,U+6396,U+63a3,U+63aa,U+63b3,U+63b7-63b8,U+63ba,U+63c9,U+63cd,U+63d6,U+63e1,U+63e3,U+63e9-63ea,U+63f4,U+63fd,U+6400-6402,U+640f-6410,U+6414,U+642a,U+643d,U+6448,U+6454,U+6478-6479,U+6482,U+6485,U+6487,U+6492,U+6495,U+64a9,U+64ac,U+64b5,U+64bc,U+64c2,U+64d2,U+64de,U+6500,U+6512,U+6518,U+652b,U+6556,U+655d-655e,U+6562,U+6566,U+6572,U+6577,U+658b-658c,U+6591,U+659f,U+65a1,U+65a4,U+65a7,U+65a9,U+65c5,U+65e8,U+65ed,U+65f1,U+65f7,U+65fa,U+6606,U+660c,U+6614,U+6625,U+6627-6628,U+662d,U+663c,U+664b-664c,U+6652-6653,U+6655,U+6664,U+6666,U+6674,U+667e,U+6687,U+6691,U+66ae,U+66dd,U+66f0,U+66f3,U+66f9,U+66fc,U+6714,U+6717,U+671d,U+6728,U+672d,U+6731,U+6734-6735,U+673d,U+6746,U+6749,U+674e-674f,U+6751,U+6756,U+675c,U+6768,U+676d,U+676f,U+677e,U+6789,U+6795,U+67a3,U+67ab,U+67af,U+67b7,U+67cf,U+67d1-67d2,U+67de,U+67e0,U+67ec,U+67f3-67f4,U+67ff,U+680b,U+6813,U+6816-6817,U+682a,U+683d,U+6842-6843,U+6845,U+684c,U+6850-6851,U+6853-6854,U+6868-6869,U+6881,U+6886,U+68a2,U+68a7-68a8,U+68b0,U+68b3,U+68c9,U+68cd,U+68d2,U+68d5,U+68d8,U+68da,U+68e0,U+68f1,U+68f5,U+68fa,U+6905,U+690e,U+6912,U+692d,U+6930,U+693d,U+693f,U+6954,U+695e,U+6977,U+6986,U+6994,U+69a8,U+69b7,U+69d0,U+6a0a,U+6a1f,U+6a31,U+6a47,U+6a59,U+6a61,U+6a71,U+6a80,U+6a84,U+6aac,U+6b20,U+6b23,U+6b32,U+6b3a,U+6b47,U+6b49,U+6b4c,U+6b6a,U+6b79,U+6b7c,U+6b83,U+6b86,U+6b89,U+6bb4,U+6bb7,U+6bbf,U+6bc5,U+6bcb,U+6bd6-6bd7,U+6bd9,U+6be1,U+6bef,U+6c0f,U+6c13,U+6c16,U+6c1b,U+6c1f,U+6c28,U+6c2f-6c30,U+6c40-6c41,U+6c50,U+6c55,U+6c57,U+6c5b,U+6c5d-6c5e,U+6c64,U+6c6a,U+6c70,U+6c72,U+6c79,U+6c7d-6c7e,U+6c81-6c83,U+6c88,U+6c8f,U+6c9b,U+6ca4,U+6ca6-6ca7,U+6caa-6cab,U+6cae,U+6cb9,U+6cbc-6cbe,U+6cc5,U+6ccc,U+6cde,U+6ce3,U+6ce5,U+6cea,U+6cf3,U+6cf5,U+6cfb-6cfc,U+6d12,U+6d2a,U+6d32,U+6d3c-6d3d,U+6d47,U+6d4a,U+6d51,U+6d53,U+6d59-6d5a,U+6d66,U+6d6a,U+6d74,U+6d78,U+6d85,U+6d8c,U+6d8e,U+6d95,U+6d9b,U+6d9d,U+6d9f,U+6da1,U+6da3-6da4,U+6da7,U+6da9-6daa,U+6daf,U+6db5,U+6db8,U+6dc0,U+6dc4,U+6dcb-6dcc,U+6dd1,U+6dd6,U+6dd8,U+6de1,U+6de4,U+6dec,U+6dee,U+6df3,U+6df9,U+6e0d,U+6e14,U+6e1d,U+6e21,U+6e23-6e24,U+6e2d,U+6e2f,U+6e34,U+6e3a,U+6e43,U+6e4d,U+6e58,U+6e5b,U+6e7e,U+6e83,U+6e85,U+6e89,U+6e9c,U+6eaa,U+6eb6,U+6eba,U+6ec1,U+6ec7,U+6ecb,U+6ed3-6ed4,U+6ee6,U+6ee8-6ee9,U+6ef4,U+6f06,U+6f13,U+6f20,U+6f31,U+6f33,U+6f3e,U+6f4d,U+6f58,U+6f5c,U+6f5e,U+6f66,U+6f6d-6f6e,U+6f88,U+6f8e,U+6f9c,U+6fa1,U+6fb3,U+6fd2,U+7011,U+704c,U+7076,U+7078,U+707f,U+7089-708a,U+708e,U+7092,U+7094-7095,U+7099,U+70ac-70ad,U+70af,U+70b3,U+70bd,U+70c1-70c2,U+70d8-70d9,U+70e4,U+70e9,U+70eb-70ec,U+70ef,U+70f7,U+70f9,U+70fd,U+7109-710a,U+7115,U+7119-711a,U+7130,U+714c,U+714e,U+7164,U+716e,U+717d,U+7184,U+718a,U+718f,U+7199,U+71ac,U+71ce,U+71d5,U+71e5,U+722a,U+722c,U+7235,U+7237-7239,U+7259,U+725b,U+725f,U+7261-7262,U+7280-7281,U+728a,U+72c8,U+72d0,U+72d9,U+72de,U+72e0-72e1,U+72ed-72ee,U+72f0,U+72f8,U+7316,U+7329,U+732b,U+7334,U+733e-733f,U+736d,U+7384,U+7389,U+7396,U+73ab,U+73b2,U+73bb,U+73ca,U+73cd,U+73d0,U+73e0,U+73ed,U+7405,U+7409,U+7410,U+7422,U+7433-7436,U+743c,U+745a,U+7470,U+7476,U+7483,U+74dc,U+74e2-74e4,U+74ee,U+74f7,U+7504,U+7518,U+751a,U+751c,U+7525,U+7529,U+752b,U+752d,U+7530,U+7545,U+7554,U+755c,U+7566,U+756a,U+7578,U+7586,U+7597,U+7599-759a,U+759f,U+75a1,U+75a4-75a5,U+75ab,U+75ae-75af,U+75b5,U+75b9,U+75bc-75bd,U+75c5,U+75c7-75ca,U+75d2,U+75d4,U+75d8,U+75db,U+75de,U+75e2,U+75ea,U+75f0,U+75f4,U+75f9,U+7601,U+761f,U+7624,U+7626,U+7629-762b,U+7634,U+7638,U+764c,U+7663,U+7678,U+7682,U+7686,U+768b,U+7691,U+7696,U+76b1,U+76bf,U+76c2,U+76c5-76c6,U+76ce-76cf,U+76d4,U+76db,U+76fc,U+7709,U+7728-7729,U+772f,U+7736-7737,U+773a,U+7741,U+775b,U+7761,U+7763,U+7766,U+776b-776c,U+7779,U+7784-7785,U+778e,U+7792,U+77a5,U+77a7,U+77aa,U+77b3,U+77bb,U+77d7,U+77e2-77e3,U+77eb,U+77ee,U+77fd-77fe,U+780c,U+7812,U+781a,U+7827,U+7830,U+7837-7838,U+783e,U+7852,U+7855,U+785d,U+786b,U+7877,U+7889,U+788c,U+7897-7898,U+789f,U+78a7,U+78b1,U+78b3-78b4,U+78be,U+78c5,U+78ca-78cb,U+78d0,U+78e8,U+78f7,U+78fa,U+7901,U+7941,U+7948,U+7956,U+795f,U+7965,U+7977,U+7984,U+79b9,U+79bd-79be,U+79c3,U+79c6,U+79c9,U+79cb,U+79df,U+79e4,U+79e6-79e7,U+79e9,U+79f8,U+7a17,U+7a1a,U+7a20,U+7a3b-7a3d,U+7a57,U+7a77,U+7a8d,U+7a91-7a92,U+7a96,U+7a98,U+7a9c-7a9d,U+7a9f,U+7aa5,U+7abf,U+7ad6,U+7adf,U+7ae3,U+7aed,U+7af9,U+7aff,U+7b06,U+7b0b,U+7b11,U+7b1b,U+7b28,U+7b3a,U+7b3c,U+7b4b,U+7b4f-7b50,U+7b52,U+7b79,U+7b8d,U+7b94-7b95,U+7ba9,U+7bc6,U+7bd3,U+7bd9,U+7bee,U+7bf1,U+7bf7,U+7c27,U+7c3f,U+7c4d,U+7c7d,U+7c95,U+7c9f,U+7ca4-7ca5,U+7caa,U+7cae,U+7cb1,U+7cb3,U+7cd5-7cd6,U+7cd9,U+7cdc,U+7ce0,U+7cef,U+7d0a,U+7d6e,U+7e82,U+7eab-7eac,U+7eb1-7eb2,U+7eb6-7eb7,U+7eba,U+7ec5,U+7eca,U+7ece,U+7ed2,U+7eda,U+7ee2-7ee3,U+7ee5-7ee6,U+7ef3,U+7ef5,U+7ef7-7ef8,U+7efd,U+7f04-7f06,U+7f09,U+7f0e,U+7f14-7f15,U+7f1a,U+7f28,U+7f2e,U+7f34,U+7f38,U+7f50,U+7f55,U+7f62,U+7f69,U+7f8a,U+7f8c,U+7f94,U+7f9a,U+7f9e,U+7fa1,U+7fb9,U+7fbd,U+7fc1,U+7fc5,U+7fcc,U+7fd4,U+7fd8,U+7fdf-7fe0,U+7ff0-7ff1,U+7ffc,U+800d,U+8015,U+8018-8019,U+802a,U+8033,U+8036,U+8038,U+803b,U+803d,U+803f,U+8042,U+804b,U+806a,U+8083-8084,U+8086-8087,U+808b-808c,U+8098,U+809a-809b,U+809d,U+80a0-80a2,U+80a5,U+80a9-80aa,U+80ae-80af,U+80b2,U+80ba,U+80be-80bf,U+80c3,U+80c6,U+80ce,U+80d6,U+80da,U+80de,U+80ef-80f0,U+80f3,U+80f8,U+80fa,U+8102,U+810a,U+810f-8110,U+8113,U+8116,U+812f,U+813e,U+8146,U+814a-814b,U+8150-8151,U+8154-8155,U+8165,U+816e,U+8170,U+817a-817b,U+817e-8180,U+818a,U+818f,U+8198,U+819b,U+819d,U+81b3,U+81c0,U+81c2-81c3,U+81e3,U+81fb-81fc,U+8200,U+8205-8206,U+820c,U+8212,U+8214,U+821c,U+821e,U+8235-8237,U+826f-8270,U+8273,U+827a,U+828b,U+828d,U+8292,U+829c-829d,U+82a5-82a6,U+82ac-82ad,U+82b3,U+82b9,U+82bd,U+82c7,U+82d1,U+82d4,U+82d7,U+82db,U+82de-82df,U+82e6,U+82eb,U+82ef,U+82f9,U+8301-8302,U+8304-8305,U+830e,U+8327-8328,U+832b-832c,U+8335,U+8338-8339,U+8346,U+8354,U+835a,U+8361,U+8364,U+8367,U+836b,U+8386,U+8389,U+83b2,U+83b9,U+83bd,U+83c7,U+83ca,U+83cf,U+83e0,U+83e9,U+83f1-83f2,U+8404,U+840c-840e,U+841d,U+8424,U+8427,U+845b,U+8461,U+8463,U+846b-846c,U+8471,U+8475,U+848b,U+8499,U+849c,U+84b2,U+84c4,U+84c9,U+84d1,U+84d6,U+84df,U+84ec,U+8511,U+8513,U+8517,U+851a,U+8521,U+852b-852c,U+8537,U+853c,U+854a,U+8574,U+857e,U+859b,U+85aa,U+85af,U+85c9,U+85d0,U+85d5,U+85e4,U+85e9,U+85fb,U+8611,U+8638,U+864f-8650,U+865e,U+8671,U+867e,U+8680-8682,U+868c,U+8695,U+869c,U+86a4,U+86c0,U+86c6,U+86ca,U+86d4,U+86d9,U+86db,U+86e4,U+86ee,U+86f0,U+86f9,U+86fe,U+8700,U+8712,U+8715,U+8717-8718,U+871c,U+8747,U+8749,U+8757,U+8774,U+8776,U+878d,U+879f,U+87ba,U+87f9,U+8815,U+8822,U+8857,U+8859,U+8863,U+886b-886c,U+8870,U+8877,U+8881,U+8884,U+888b,U+888d,U+8892,U+8896,U+889c,U+88b1,U+88d5,U+88d9,U+88e4,U+88f3-88f4,U+8902,U+8910,U+8912,U+8925,U+892a,U+8944,U+895f,U+89c5,U+8a79,U+8a8a,U+8a93,U+8b6c,U+8ba3,U+8ba5,U+8bab,U+8baf,U+8bb3,U+8bb6,U+8bb9,U+8bbc,U+8bc0,U+8bcc,U+8bdb,U+8bde,U+8be1,U+8be3,U+8be7,U+8beb-8bec,U+8bf2,U+8bfd-8bfe,U+8c05-8c06,U+8c0a-8c0b,U+8c0d-8c0e,U+8c10,U+8c17,U+8c1a,U+8c1c,U+8c23-8c24,U+8c26,U+8c29,U+8c2c-8c2d,U+8c30,U+8c34,U+8c46,U+8c4c,U+8c62,U+8c6a-8c6b,U+8c7a,U+8c89,U+8d1e,U+8d24,U+8d2c,U+8d2e-8d31,U+8d3a,U+8d3e-8d3f,U+8d41-8d43,U+8d4a,U+8d4e,U+8d50,U+8d58,U+8d60-8d63,U+8d66,U+8d74-8d75,U+8d81,U+8da3,U+8db4,U+8dbe,U+8dcb,U+8dea,U+8df5,U+8dfa,U+8e0a,U+8e0c,U+8e0f,U+8e1e,U+8e22,U+8e44,U+8e48,U+8e4b,U+8e66,U+8e6c-8e6d,U+8e7f,U+8e81,U+8e87,U+8eac,U+8eaf,U+8eb2,U+8eba,U+8f67,U+8f69,U+8f7f,U+8f86,U+8f88,U+8f8a,U+8f95-8f97,U+8f99,U+8f9b-8f9c,U+8f9e-8f9f,U+8fa3,U+8fa9,U+8fab,U+8fb0,U+8fbd,U+8fc2,U+8fc4,U+8fc8,U+8fe2,U+8fea-8feb,U+8ff7-8ff8,U+900a,U+901b,U+901d-901e,U+9022,U+902e,U+9038,U+903e,U+9041-9042,U+904f,U+9063,U+9065,U+906d,U+9091,U+9093,U+90a2,U+90aa,U+90af,U+90b1,U+90b5,U+90b9,U+90c1,U+90ca,U+90ce,U+90d1,U+90dd,U+90e1,U+90e7,U+90ed,U+90f4,U+90f8,U+9102,U+9119,U+9149,U+914b-914c,U+9152,U+9157,U+915a,U+915d-915e,U+9163,U+9165,U+916a,U+916c,U+916e,U+9171,U+9175-9177,U+917f,U+9187,U+9189,U+918b,U+919a-919b,U+91c9,U+91ce,U+91dc,U+948e,U+9492,U+9499,U+949d-949e,U+94a0-94a1,U+94a6-94a8,U+94b3,U+94b5,U+94c0,U+94c2-94c3,U+94c5-94c6,U+94dc-94dd,U+94e1,U+94e3,U+94ec,U+94f0-94f2,U+94fa,U+9504-9505,U+9508,U+950c,U+9510-9511,U+9517,U+9521,U+9523,U+9526,U+9528,U+952d,U+9530,U+9539,U+953b,U+9540-9541,U+9547,U+954a,U+954d,U+9550-9551,U+9563,U+956d,U+9570,U+9576,U+95f0,U+95f7,U+95fa,U+95fd,U+9600-9602,U+9609,U+960e,U+9610-9611,U+9614,U+961c,U+962e,U+9633,U+9640,U+9646-9647,U+964b,U+9655,U+965b,U+9661-9662,U+9668,U+966a,U+9675-9676,U+9685,U+968b,U+9698,U+96a7,U+96c0-96c1,U+96c4,U+96cc-96cd,U+96cf,U+96d5,U+96e8,U+96ea,U+96f9,U+9704,U+9707,U+9709,U+9716,U+971e,U+9738-9739,U+9756,U+975b,U+9761,U+9773-9774,U+9776,U+978b,U+978d,U+9798,U+97a0,U+97e6-97e7,U+97e9,U+97ed,U+97f5-97f6,U+9877,U+987d-987e,U+9881-9882,U+9885,U+9887,U+988a,U+9890,U+9893,U+9896,U+989c,U+98a0,U+98a4,U+98a7,U+98d8,U+98df,U+9910,U+9965,U+996d-996f,U+9971-9972,U+9975-9976,U+997a,U+997c,U+997f,U+9981,U+9985-9986,U+998b,U+998f,U+9992,U+9a6d-9a6e,U+9a70,U+9a74,U+9a79,U+9a7c,U+9a84,U+9a86-9a87,U+9a8b,U+9a8f,U+9a9a,U+9aa1,U+9ad3,U+9b03,U+9b41,U+9b44,U+9b4f,U+9c81,U+9c8d,U+9ca4,U+9cc3,U+9cd6,U+9cde,U+9e21,U+9e2d,U+9e2f,U+9e33,U+9e35,U+9e3d,U+9e43,U+9e4a,U+9e4f,U+9e64,U+9e93,U+9ea6,U+9ecd-9ece,U+9ed4,U+9f0e,U+9f13,U+9f3b,U+9f84,U+9f8b,U+9f9a;
}

/* ---------- 配色（暗色变体；浅色“晨曦”在 styles.css 的 [data-theme="light"]） ---------- */
/* OLED 纯黑：曙光的金色和青色不变，底色和面板全部纯黑，靠细边框分区，OLED 屏上黑色像素不发光 */
:root[data-palette="oled"] {
  --bg: #000000; --bg-2: #000000; --panel-solid: #000000; --panel-hi: #0a0a0a;
  --hud-panel-bg: #000000;
}
:root[data-palette="oled"] body { background: #000; }
:root[data-palette="oled"] #bridge .glass-panel,
:root[data-palette="oled"] #bridge .panel { background: #000; backdrop-filter: none; -webkit-backdrop-filter: none; }
:root[data-palette="shanhai"] {
  --bg: #030b09; --bg-2: #061410; --panel-solid: #0b1814; --panel-hi: #11221c;
  --am: #4fd1a5; --am-hi: #8be8c6; --am-rgb: 79, 209, 165; --am-ink: #04140e;
  --cy: #9fd8cf; --cy-rgb: 159, 216, 207;
  --hud-panel-bg: rgba(11, 24, 20, 0.84);
}
:root[data-palette="amarr"] {
  --bg: #0b0803; --bg-2: #120d05; --panel-solid: #17110a; --panel-hi: #20180d;
  --am: #e6b54a; --am-hi: #f6d27a; --am-rgb: 230, 181, 74; --am-ink: #1a1004;
  --cy: #f0dfae; --cy-rgb: 240, 223, 174;
  --hud-panel-bg: rgba(23, 17, 10, 0.86);
}
:root[data-palette="caldari"] {
  --bg: #04070c; --bg-2: #070c14; --panel-solid: #0c1320; --panel-hi: #121c2c;
  --am: #8fb4e3; --am-hi: #c2d6f0; --am-rgb: 143, 180, 227; --am-ink: #060c16;
  --cy: #cfd8e3; --cy-rgb: 207, 216, 227;
  --hud-panel-bg: rgba(12, 19, 32, 0.86);
}
:root[data-palette="gallente"] {
  --bg: #030a08; --bg-2: #05110d; --panel-solid: #0a1813; --panel-hi: #10231b;
  --am: #3fc48c; --am-hi: #7fe0b5; --am-rgb: 63, 196, 140; --am-ink: #03130c;
  --cy: #a6e6c9; --cy-rgb: 166, 230, 201;
  --hud-panel-bg: rgba(10, 24, 19, 0.86);
}
:root[data-palette="minmatar"] {
  --bg: #0c0504; --bg-2: #140807; --panel-solid: #1a0d0a; --panel-hi: #24130f;
  --am: #e2683f; --am-hi: #f29672; --am-rgb: 226, 104, 63; --am-ink: #1a0804;
  --cy: #ebb9a2; --cy-rgb: 235, 185, 162;
  --hud-panel-bg: rgba(26, 13, 10, 0.86);
}
:root[data-palette="contrast"] {
  --bg: #000000; --bg-2: #000000; --panel-solid: #050505; --panel-hi: #0d0d0d;
  --t1: #ffffff; --t2: #e6e6e6; --t3: #bdbdbd; --t4: #9a9a9a;
  --am: #ffd400; --am-hi: #ffe766; --am-rgb: 255, 212, 0; --am-ink: #000000;
  --cy: #00e5ff; --cy-rgb: 0, 229, 255;
  --rd: #ff5a5a; --rd-rgb: 255, 90, 90; --gr: #3dff8f; --gr-rgb: 61, 255, 143;
  --edge: rgba(255, 255, 255, 0.34); --edge-hi: rgba(255, 255, 255, 0.6);
  --hud-panel-bg: #050505;
}
:root[data-palette="cvd"] {
  /* Okabe-Ito：红绿用朱红 / 蓝绿区分，避免红绿色弱混淆 */
  --am: #e69f00; --am-hi: #f5b83a; --am-rgb: 230, 159, 0;
  --cy: #56b4e9; --cy-rgb: 86, 180, 233;
  --rd: #d55e00; --rd-rgb: 213, 94, 0; --gr: #009e73; --gr-rgb: 0, 158, 115;
  --bl: #0072b2; --bl-rgb: 0, 114, 178;
}

/* ---------- 基础 ---------- */
#bridge {
  font-family: var(--font-ui);
  color: var(--t1);
  background:
    radial-gradient(120% 70% at 50% -18%, rgba(var(--am-rgb), 0.10), transparent 55%),
    radial-gradient(70% 50% at 100% 0%, rgba(var(--cy-rgb), 0.06), transparent 60%),
    linear-gradient(180deg, var(--bg-2) 0%, var(--bg) 46%);
  background-attachment: fixed;
}
#bridge::before {
  background-image:
    linear-gradient(rgba(var(--cy-rgb), 0.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--cy-rgb), 0.022) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: radial-gradient(ellipse 90% 70% at 50% 10%, #000 20%, transparent 80%);
  -webkit-mask-image: radial-gradient(ellipse 90% 70% at 50% 10%, #000 20%, transparent 80%);
}
:root[data-theme="light"] #bridge {
  background:
    radial-gradient(120% 70% at 50% -20%, rgba(var(--am-rgb), 0.10), transparent 55%),
    linear-gradient(180deg, var(--bg) 0%, var(--bg-2) 100%);
}
#bridge .hud-grid-overlay { display: none; }
#bridge ::selection { background: rgba(var(--am-rgb), 0.32); color: var(--t1); }
#bridge :focus-visible { outline: 2px solid var(--am); outline-offset: 2px; }
#bridge a { text-underline-offset: 3px; }
#bridge .app-shell { position: relative; z-index: 1; }

.bridge-starfield {
  position: fixed;
  inset: 0;
  z-index: 0;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
}
:root[data-fx="eco"] .bridge-starfield { display: none; }

/* 标题用宋体，数字用等宽 */
#bridge h1,
#bridge .v2-section-title,
#bridge .compact-page-headline h1,
#bridge .bridge-serif {
  font-family: var(--font-serif);
  font-weight: 800;
  letter-spacing: 0.02em;
}
#bridge .bridge-num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

/* 标签：Orbitron 小号大写，加宽字距 */
#bridge .kicker,
#bridge .v2-panel-kicker,
#bridge .bridge-kicker {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--cy);
}
.bridge-kicker { font-family: var(--font-display); font-size: 11px; letter-spacing: 0.2em; color: var(--cy); text-transform: uppercase; }
.bridge-kicker b, .bridge-kicker em { color: var(--am); font-style: normal; font-weight: 500; }
#bridge .v2-panel-title { font-weight: 700; color: var(--t1); letter-spacing: 0.01em; }

/* ---------- 面板：深色玻璃 + 细边；重点卡片四角金色括角 ---------- */
#bridge .glass-panel,
#bridge .panel,
#bridge .info-card,
#bridge .data-card {
  border: 1px solid var(--edge);
  border-radius: var(--radius-card);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.025), rgba(255, 255, 255, 0) 40%),
    var(--hud-panel-bg);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.03) inset, 0 18px 44px rgba(0, 0, 0, 0.28);
}
#bridge .glass-panel:hover { border-color: var(--edge-hi); }
:root[data-fx="rich"] #bridge .glass-panel,
:root[data-fx="rich"] #bridge .panel { backdrop-filter: blur(10px) saturate(130%); -webkit-backdrop-filter: blur(10px) saturate(130%); }
:root[data-fx="eco"] #bridge .glass-panel,
:root[data-fx="eco"] #bridge .panel { backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; }
:root[data-theme="light"] #bridge .glass-panel,
:root[data-theme="light"] #bridge .panel,
:root[data-theme="light"] #bridge .info-card,
:root[data-theme="light"] #bridge .data-card {
  background: var(--panel-solid);
  box-shadow: var(--shadow-panel);
}

/* 金色括角：给每屏最重要的 1-2 张卡片 */
.hud-corners,
#bridge .hero-command-panel {
  position: relative;
}
.hud-corners::before,
.hud-corners::after,
#bridge .hero-command-panel::before,
#bridge .hero-command-panel::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  pointer-events: none;
  z-index: 2;
}
.hud-corners::before,
#bridge .hero-command-panel::before {
  top: -1px;
  left: -1px;
  border-top: 2px solid var(--am);
  border-left: 2px solid var(--am);
  border-top-left-radius: 4px;
}
.hud-corners::after,
#bridge .hero-command-panel::after {
  right: -1px;
  bottom: -1px;
  border-right: 2px solid var(--am);
  border-bottom: 2px solid var(--am);
  border-bottom-right-radius: 4px;
}

/* ---------- 按钮与筹码 ---------- */
#bridge .hud-btn-primary,
#bridge .action-button.primary,
#bridge .bridge-btn-primary {
  border: 1px solid transparent;
  background: linear-gradient(180deg, var(--am-hi), var(--am));
  color: var(--am-ink);
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(var(--am-rgb), 0.22), 0 1px 0 rgba(255, 255, 255, 0.35) inset;
}
#bridge .hud-btn-primary:hover,
#bridge .action-button.primary:hover,
#bridge .bridge-btn-primary:hover {
  filter: brightness(1.06);
  box-shadow: 0 8px 26px rgba(var(--am-rgb), 0.34), 0 1px 0 rgba(255, 255, 255, 0.4) inset;
}
#bridge .hud-btn-primary { border-radius: 8px; height: 36px; padding: 0 16px; }
#bridge .hud-btn-outline,
#bridge .action-button:not(.primary),
#bridge .bridge-btn {
  border: 1px solid var(--edge-hi);
  background: rgba(255, 255, 255, 0.025);
  color: var(--t1);
}
#bridge .hud-btn-outline { border-radius: 8px; height: 36px; }
#bridge .hud-btn-outline:hover,
#bridge .action-button:not(.primary):hover,
#bridge .bridge-btn:hover {
  border-color: rgba(var(--am-rgb), 0.55);
  color: var(--am-hi);
  background: rgba(var(--am-rgb), 0.06);
}
#bridge .action-button { border-radius: 8px; }
#bridge .bridge-btn-primary,
#bridge .bridge-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 38px;
  padding: 0 16px;
  border-radius: 8px;
  font-size: 14px;
  text-decoration: none;
  cursor: pointer;
  white-space: nowrap;
}
#bridge .bridge-btn.is-kaiming { border-color: rgba(var(--am-rgb), 0.5); color: var(--am); }
#bridge .bridge-btn.is-tool { border-color: rgba(var(--cy-rgb), 0.45); color: var(--cy); }
:root[data-theme="light"] #bridge .hud-btn-outline,
:root[data-theme="light"] #bridge .action-button:not(.primary),
:root[data-theme="light"] #bridge .bridge-btn { background: #fff; }

#bridge .hud-chip,
#bridge .bridge-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 0 14px;
  border: 1px solid var(--edge-hi);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--t1);
  font-size: 13px;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
#bridge .hud-chip:hover,
#bridge .bridge-chip:hover { border-color: rgba(var(--am-rgb), 0.6); color: var(--am-hi); background: rgba(var(--am-rgb), 0.06); }
#bridge .bridge-chip.is-selected { border-color: var(--am); color: var(--am); background: rgba(var(--am-rgb), 0.08); }
#bridge .bridge-chip.is-action { border-color: rgba(var(--cy-rgb), 0.5); color: var(--cy); }
:root[data-theme="light"] #bridge .hud-chip,
:root[data-theme="light"] #bridge .bridge-chip { background: #fff; }

/* 页面内分页签：底部金线 */
#bridge .compact-page-tags button,
#bridge .compact-page-tags a {
  border: 1px solid var(--edge);
  background: rgba(255, 255, 255, 0.02);
  color: var(--t2);
  font-weight: 600;
}
#bridge .compact-page-tags button.is-active,
#bridge .compact-page-tags a.is-active {
  border-color: rgba(var(--am-rgb), 0.7);
  background: rgba(var(--am-rgb), 0.12);
  color: var(--am-hi);
  box-shadow: inset 0 -2px 0 var(--am);
}
:root[data-theme="light"] #bridge .compact-page-tags button.is-active,
:root[data-theme="light"] #bridge .compact-page-tags a.is-active { color: var(--am); }

/* 输入框 */
#bridge input[type="text"],
#bridge input[type="search"],
#bridge input[type="number"],
#bridge input:not([type]),
#bridge select,
#bridge textarea {
  border-color: var(--edge-hi);
  color: var(--t1);
}
#bridge input:focus-visible,
#bridge select:focus-visible,
#bridge textarea:focus-visible { outline: 2px solid rgba(var(--am-rgb), 0.7); outline-offset: 1px; }

/* ---------- 页面抬头：开放式横幅（Orbitron 面包屑 + 宋体大标题 + 副标题 + 底部晨光弧） ---------- */
#bridge .compact-page-hud {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "head actions" "sub actions" "tags tags";
  align-items: end;
  gap: 8px 24px;
  min-height: 0;
  margin-bottom: 18px;
  padding: 26px 4px 28px;
  border: 0;
  border-bottom: 1px solid rgba(var(--am-rgb), 0.28);
  border-radius: 0;
  background: none;
  box-shadow: none;
  overflow: visible;
}
#bridge .compact-page-hud.is-simple { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "sub" "tags"; }
#bridge .compact-page-hud::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -1px;
  width: min(520px, 60%);
  height: 26px;
  transform: translateX(-50%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  border-top: 2px solid rgba(var(--am-rgb), 0.75);
  background: radial-gradient(60% 100% at 50% 100%, rgba(var(--am-rgb), 0.16), transparent 70%);
  filter: drop-shadow(0 -2px 8px rgba(var(--am-rgb), 0.45));
  opacity: 1;
  pointer-events: none;
}
:root[data-fx="eco"] #bridge .compact-page-hud::after { filter: none; background: none; }
#bridge .compact-page-headline { grid-area: head; display: flex; flex-direction: column-reverse; align-items: flex-start; gap: 10px; min-width: 0; }
#bridge .compact-page-headline h1 { margin: 0; font-size: clamp(32px, 3.6vw, 50px); line-height: 1.08; color: var(--t1); white-space: normal; }
:root:not([data-theme="light"]) #bridge .compact-page-headline h1 { color: #fbf5e9; text-shadow: 0 0 30px rgba(var(--am-rgb), 0.18); }
#bridge .compact-page-headline span {
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.24em;
  color: var(--cy);
  white-space: normal;
}
#bridge .compact-page-headline b { align-self: flex-start; }
#bridge .bridge-page-sub { grid-area: sub; margin: 0; color: var(--t2); font-size: 15px; line-height: 1.6; }
#bridge .compact-page-actions { grid-area: actions; display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 8px; }
#bridge .compact-page-tags { grid-area: tags; margin-top: 10px; flex-wrap: wrap; overflow: visible; }
#bridge .compact-page-hud > form { grid-column: 1 / -1; }
#bridge .bridge-page-status { display: grid; justify-items: end; gap: 6px; color: var(--t3); font-size: 12.5px; }

/* 分区导航：下划线式页签 */
.bridge-subnav {
  display: flex;
  gap: 4px;
  margin: 0 0 18px;
  border-bottom: 1px solid var(--edge);
  overflow-x: auto;
  scrollbar-width: none;
}
.bridge-subnav::-webkit-scrollbar { display: none; }
.bridge-subnav a,
.bridge-subnav button {
  position: relative;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 12px 16px 14px;
  border: 0;
  background: none;
  color: var(--t2);
  font: inherit;
  font-size: 15px;
  text-decoration: none;
  cursor: pointer;
}
.bridge-subnav small { color: var(--t3); font-size: 11px; }
.bridge-subnav a:hover, .bridge-subnav button:hover { color: var(--t1); }
.bridge-subnav .is-active, .bridge-subnav [aria-selected="true"] { color: var(--am); }
.bridge-subnav .is-active::after, .bridge-subnav [aria-selected="true"]::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: -1px;
  height: 2px;
  background: var(--am);
  box-shadow: 0 0 10px rgba(var(--am-rgb), 0.7);
}

/* ---------- 导航 ---------- */
#bridge .nav-bar {
  position: sticky;
  top: 12px;
  z-index: 60;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  width: min(1440px, calc(100vw - 48px));
  height: 60px;
  margin: 14px auto 0;
  padding: 0 12px 0 18px;
  border: 1px solid var(--edge);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0)), var(--hud-nav-bg);
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.35), 0 1px 0 rgba(255, 255, 255, 0.05) inset;
  backdrop-filter: blur(16px) saturate(140%);
  -webkit-backdrop-filter: blur(16px) saturate(140%);
  outline: none;
}
:root[data-fx="eco"] #bridge .nav-bar { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--bg-2); }
:root[data-theme="light"] #bridge .nav-bar {
  background: rgba(255, 253, 248, 0.9);
  border-color: var(--edge);
  box-shadow: 0 10px 30px rgba(70, 52, 24, 0.08);
}
#bridge .nav-bar,
#bridge.page-fitting .nav-bar { display: flex; flex-wrap: nowrap; grid-template-columns: none; }
#bridge .nav-bar .nav-links,
#bridge.page-fitting .nav-bar .nav-links { position: static; order: 0; width: auto; max-width: none; overflow: visible; grid-template-columns: none; backdrop-filter: none; grid-column: auto; }
#bridge .nav-bar .nav-brand-text { display: inline; }
#bridge .nav-bar .nav-brand { flex: 0 0 auto; min-width: 0; }
#bridge .nav-brand { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; padding-right: 8px; text-decoration: none; color: var(--t1); }
#bridge .nav-brand-mark { width: 30px; height: 30px; color: var(--am); filter: drop-shadow(0 0 8px rgba(var(--am-rgb), 0.45)); }
#bridge .nav-brand-text { white-space: nowrap; font-family: var(--font-serif); font-size: 21px; font-weight: 800; letter-spacing: 0.08em; color: var(--t1); }
#bridge .nav-links { display: flex; align-items: center; gap: 2px; min-width: 0; margin-left: 10px; background: none; border: 0; box-shadow: none; padding: 0; }
#bridge .nav-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 13px;
  border-radius: 8px;
  background: none;
  box-shadow: none;
  color: var(--t2);
  font-size: 14.5px;
  font-weight: 500;
  white-space: nowrap;
  text-decoration: none;
}
#bridge .nav-link:hover { color: var(--t1); background: rgba(255, 255, 255, 0.05); }
#bridge .nav-link.active { color: var(--am); background: none; box-shadow: none; }
#bridge .nav-link.active::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 2px;
  height: 2px;
  border-radius: 2px;
  background: var(--am);
  box-shadow: 0 0 10px rgba(var(--am-rgb), 0.8);
}
:root[data-theme="light"] #bridge .nav-link:hover { background: rgba(70, 52, 24, 0.05); }

#bridge .nav-group { position: relative; display: inline-flex; }
#bridge .nav-group > .nav-link::before {
  content: "";
  order: 2;
  width: 6px;
  height: 6px;
  margin-left: 7px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  opacity: 0.6;
}
#bridge .nav-group-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: -8px;
  z-index: 70;
  display: grid;
  min-width: 230px;
  padding: 6px;
  border: 1px solid var(--edge-hi);
  border-radius: 12px;
  background: var(--panel-solid);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-4px);
  transition: opacity 0.14s ease, transform 0.14s ease, visibility 0s linear 0.14s;
}
#bridge .nav-group::after { content: ""; position: absolute; left: 0; right: 0; top: 100%; height: 10px; }
#bridge .nav-group:hover .nav-group-menu,
#bridge .nav-group:focus-within .nav-group-menu { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
#bridge .nav-sublink { display: grid; gap: 2px; padding: 9px 12px; border-radius: 8px; color: var(--t1); font-size: 14px; text-decoration: none; }
#bridge .nav-sublink small { color: var(--t3); font-size: 12px; }
#bridge .nav-sublink:hover,
#bridge .nav-sublink.active { background: rgba(var(--am-rgb), 0.09); color: var(--am-hi); }
:root[data-theme="light"] #bridge .nav-sublink:hover,
:root[data-theme="light"] #bridge .nav-sublink.active { color: var(--am); }

#bridge .nav-official-partner {
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  height: 36px;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  padding: 0 12px 0 4px;
  border: 1px solid rgba(var(--am-rgb), 0.45);
  border-radius: 999px;
  background: rgba(var(--am-rgb), 0.06);
  box-shadow: none;
  grid-template-rows: none;
}
#bridge .nav-official-partner:hover { border-color: var(--am); transform: none; box-shadow: 0 0 18px rgba(var(--am-rgb), 0.2); }
#bridge .nav-partner-mark { width: 78px; height: 26px; border-radius: 999px; aspect-ratio: auto; }
#bridge .nav-partner-status { color: var(--am-hi); font: 600 12px/1 var(--font-ui); letter-spacing: 0.04em; }
:root[data-theme="light"] #bridge .nav-partner-status { color: var(--am); }

.bridge-command-trigger {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  min-width: 190px;
  padding: 0 8px 0 12px;
  border: 1px solid var(--edge-hi);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--t3);
  font: inherit;
  font-size: 13.5px;
  cursor: pointer;
}
.bridge-command-trigger span { flex: 1; text-align: left; }
.bridge-command-trigger:hover { border-color: rgba(var(--am-rgb), 0.5); color: var(--t1); }
.bridge-command-trigger kbd,
.bridge-command kbd {
  padding: 2px 6px;
  border: 1px solid var(--edge-hi);
  border-radius: 6px;
  color: var(--t3);
  font: 600 11px/1.3 var(--font-mono);
}
:root[data-theme="light"] .bridge-command-trigger { background: #fff; }

#bridge .nav-actions { display: flex; align-items: center; gap: 8px; margin-left: 0; }
#bridge .theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 38px;
  min-width: 0;
  padding: 0 12px;
  border: 1px solid var(--edge-hi);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--t2);
  font-size: 13px;
}
#bridge .theme-toggle:hover,
#bridge .theme-toggle[aria-expanded="true"] { border-color: rgba(var(--am-rgb), 0.55); color: var(--am-hi); }
:root[data-theme="light"] #bridge .theme-toggle { background: #fff; color: var(--t2); border-color: var(--edge-hi); }
#bridge .nav-login-secondary { border-color: transparent; background: none; color: var(--t2); }
#bridge .nav-menu-toggle { display: none; }

/* ---------- 主题菜单 ---------- */
.bridge-theme-menu {
  position: fixed;
  z-index: 90;
  width: min(420px, calc(100vw - 24px));
  padding: 16px;
  border: 1px solid var(--edge-hi);
  border-radius: 14px;
  background: var(--panel-solid);
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.55);
  max-height: calc(100vh - 96px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.bridge-theme-menu[hidden] { display: none; }
.bridge-theme-menu .bridge-kicker { margin: 2px 2px 10px; }
.bridge-palette-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.bridge-palette-option {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 2px 8px;
  padding: 8px;
  border: 1px solid var(--edge);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  color: var(--t1);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.bridge-palette-option strong { font-size: 13px; }
.bridge-palette-option small { grid-column: 2; color: var(--t3); font-size: 11px; }
.bridge-palette-option[aria-pressed="true"] { border-color: var(--am); box-shadow: 0 0 0 1px var(--am) inset; }
.bridge-palette-swatch { grid-row: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 2px; width: 30px; height: 30px; padding: 3px; border-radius: 7px; background: #04060b; }
.bridge-palette-swatch i { border-radius: 50%; align-self: center; height: 11px; }
[data-palette-preview="shuguang"] i:first-child { background: #f2a93b; } [data-palette-preview="shuguang"] i:last-child { background: #56c2e0; }
[data-palette-preview="chenxi"] { background: #f5f1e8; } [data-palette-preview="chenxi"] i:first-child { background: #c4741f; } [data-palette-preview="chenxi"] i:last-child { background: #1d7f99; }
[data-palette-preview="shanhai"] { background: #061410; } [data-palette-preview="shanhai"] i:first-child { background: #4fd1a5; } [data-palette-preview="shanhai"] i:last-child { background: #9fd8cf; }
[data-palette-preview="amarr"] { background: #120d05; } [data-palette-preview="amarr"] i:first-child { background: #e6b54a; } [data-palette-preview="amarr"] i:last-child { background: #f0dfae; }
[data-palette-preview="caldari"] { background: #070c14; } [data-palette-preview="caldari"] i:first-child { background: #8fb4e3; } [data-palette-preview="caldari"] i:last-child { background: #cfd8e3; }
[data-palette-preview="gallente"] { background: #05110d; } [data-palette-preview="gallente"] i:first-child { background: #3fc48c; } [data-palette-preview="gallente"] i:last-child { background: #a6e6c9; }
[data-palette-preview="minmatar"] { background: #140807; } [data-palette-preview="minmatar"] i:first-child { background: #e2683f; } [data-palette-preview="minmatar"] i:last-child { background: #ebb9a2; }
[data-palette-preview="contrast"] { background: #000; } [data-palette-preview="contrast"] i:first-child { background: #ffd400; } [data-palette-preview="contrast"] i:last-child { background: #00e5ff; }
[data-palette-preview="cvd"] i:first-child { background: #e69f00; } [data-palette-preview="cvd"] i:last-child { background: #56b4e9; }
[data-palette-preview="oled"] { background: #000; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.18) inset; } [data-palette-preview="oled"] i:first-child { background: #f2a93b; } [data-palette-preview="oled"] i:last-child { background: #56c2e0; }
.bridge-fx-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.bridge-mode-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-bottom: 4px; }
.bridge-mode-options button,
.bridge-fx-options button {
  display: grid;
  gap: 2px;
  padding: 10px;
  border: 1px solid var(--edge);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.02);
  color: var(--t1);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.bridge-mode-options button small,
.bridge-fx-options button small { color: var(--t3); font-size: 11px; line-height: 1.4; }
.bridge-mode-options button[aria-checked="true"],
.bridge-fx-options button[aria-checked="true"] { border-color: var(--am); box-shadow: 0 0 0 1px var(--am) inset; }
.bridge-fx-notice { position: fixed; z-index: 400; left: 50%; bottom: 96px; transform: translateX(-50%); display: flex; align-items: center; gap: 12px; max-width: calc(100vw - 32px); padding: 10px 14px; border: 1px solid rgba(var(--am-rgb), 0.5); border-radius: 10px; background: var(--panel-solid, #0d131c); color: var(--t2); font-size: 13px; box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5); }
.bridge-fx-notice button { flex: none; border: 1px solid var(--edge); border-radius: 6px; background: none; color: var(--am-hi); padding: 4px 10px; cursor: pointer; }
.bridge-theme-note { margin: 12px 2px 0; color: var(--t3); font-size: 12px; }

/* ---------- ⌘K 指挥栏 ---------- */
.bridge-command {
  width: min(640px, calc(100vw - 24px));
  max-height: min(560px, calc(100vh - 80px));
  margin: 12vh auto auto;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(var(--am-rgb), 0.45);
  border-radius: 16px;
  background: var(--panel-solid);
  color: var(--t1);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.03) inset, 0 40px 120px rgba(0, 0, 0, 0.6), 0 0 60px rgba(var(--am-rgb), 0.12);
}
.bridge-command::backdrop { background: rgba(2, 4, 8, 0.66); backdrop-filter: blur(3px); }
:root[data-theme="light"] .bridge-command::backdrop { background: rgba(40, 30, 10, 0.25); }
.bridge-command-form { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--edge); }
.bridge-command-mark { width: 26px; height: 26px; color: var(--am); flex: 0 0 auto; }
.bridge-command-form input { flex: 1; min-width: 0; border: 0 !important; background: none; color: var(--t1); font-size: 17px; outline: none !important; }
.bridge-command-results { max-height: 400px; overflow: auto; padding: 6px; }
.bridge-command-item {
  display: grid;
  grid-template-columns: 54px 1fr;
  gap: 1px 10px;
  padding: 10px 12px;
  border-radius: 10px;
  color: var(--t1);
  text-decoration: none;
}
.bridge-command-item .bridge-command-kind { grid-row: span 2; align-self: center; justify-self: start; padding: 2px 7px; border: 1px solid var(--edge-hi); border-radius: 6px; color: var(--cy); font-size: 11px; }
.bridge-command-item small { color: var(--t3); font-size: 12px; }
.bridge-command-item.is-ask .bridge-command-kind { color: var(--am); border-color: rgba(var(--am-rgb), 0.5); }
.bridge-command-item.is-active { background: rgba(var(--am-rgb), 0.1); }
.bridge-command-item.is-active strong { color: var(--am-hi); }
:root[data-theme="light"] .bridge-command-item.is-active strong { color: var(--am); }
.bridge-command-empty { margin: 0; padding: 18px; color: var(--t3); }
.bridge-command-foot { display: flex; gap: 16px; padding: 10px 16px; border-top: 1px solid var(--edge); color: var(--t3); font-size: 12px; }
.bridge-command-foot span:last-child { margin-left: auto; }

/* ---------- 页脚 ---------- */
#bridge .site-footer {
  border-top: 1px dashed var(--edge-hi);
  background: none;
  box-shadow: none;
  color: var(--t3);
}
#bridge .site-footer-inner { background: none; border: 0; box-shadow: none; }
#bridge .site-footer p { color: var(--t3); }
#bridge .site-footer a { color: var(--t2); }

/* ---------- 手机标签栏 ---------- */
.bridge-tabbar { display: none; }

/* ---------- 开明浮窗：曙光金停靠条 ---------- */
#bridge .assistant-launcher {
  border: 1px solid rgba(var(--am-rgb), 0.6);
  background: radial-gradient(120% 120% at 30% 20%, rgba(var(--am-rgb), 0.28), transparent 60%), var(--panel-solid);
  color: var(--t1);
  box-shadow: 0 12px 36px rgba(0, 0, 0, 0.45), 0 0 26px rgba(var(--am-rgb), 0.25);
}
#bridge .assistant-launcher-dot { background: var(--am); box-shadow: 0 0 10px var(--am); }
#bridge .assistant-launcher small { color: var(--am); }
#bridge .floating-chat {
  border: 1px solid rgba(var(--am-rgb), 0.35);
  background: var(--panel-solid);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55), 0 0 40px rgba(var(--am-rgb), 0.08);
}
#bridge .assistant-avatar {
  background: radial-gradient(circle at 50% 60%, rgba(var(--am-rgb), 0.3), transparent 70%);
  border: 1.5px solid var(--am);
  color: var(--am);
  font-family: var(--font-serif);
}
#bridge .ask-send-btn,
#bridge .hero-command-send {
  background: linear-gradient(180deg, var(--am-hi), var(--am));
  color: var(--am-ink);
  border: 0;
}
#bridge .message.user .assistant-message-body,
#bridge .message.user > p {
  border-color: rgba(var(--cy-rgb), 0.35);
}

/* ---------- 特效 ---------- */
@keyframes bridge-spin { to { transform: rotate(360deg); } }
@keyframes bridge-pulse { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
@keyframes bridge-sweep { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes bridge-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes bridge-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@keyframes bridge-dawn { 0%, 100% { opacity: 0.75; } 50% { opacity: 1; } }

:root[data-fx="rich"] #bridge .glass-panel { animation: bridge-rise 0.5s ease-out backwards; }
:root[data-fx="eco"] #bridge *,
:root[data-fx="eco"] #bridge *::before,
:root[data-fx="eco"] #bridge *::after { animation-duration: 0s !important; animation-iteration-count: 1 !important; transition-duration: 0s !important; }
@media (prefers-reduced-motion: reduce) {
  #bridge *, #bridge *::before, #bridge *::after { animation-duration: 0s !important; animation-iteration-count: 1 !important; }
}

/* ---------- 响应式外壳 ---------- */
@media (max-width: 1360px) {
  .bridge-command-trigger { min-width: 0; }
  .bridge-command-trigger span { display: none; }
  #bridge .nav-partner-mark { display: none; }
}
@media (max-width: 1180px) {
  #bridge .nav-link { padding: 0 9px; font-size: 14px; }
  #bridge .nav-official-partner { padding: 0 10px; }
  #bridge .nav-login-secondary { display: none; }
}
@media (max-width: 1020px) {
  #bridge .nav-bar { height: 56px; gap: 8px; }
  #bridge .nav-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    order: 5;
    height: 38px;
    min-width: 54px;
    padding: 0 10px;
    border: 1px solid var(--edge-hi);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.03);
    color: var(--t1);
    font-size: 13px;
  }
  #bridge .nav-bar .nav-links,
  #bridge.page-fitting .nav-bar .nav-links {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    display: none;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    margin: 0;
    padding: 8px;
    border: 1px solid var(--edge-hi);
    border-radius: 14px;
    background: var(--panel-solid);
    box-shadow: 0 30px 70px rgba(0, 0, 0, 0.5);
  }
  #bridge .nav-bar.menu-open .nav-links,
  #bridge.page-fitting .nav-bar.menu-open .nav-links { display: flex; }
  #bridge .nav-group { display: grid; }
  #bridge .nav-group > .nav-link::before { display: none; }
  #bridge .nav-group-menu { position: static; opacity: 1; visibility: visible; transform: none; min-width: 0; padding: 0 0 4px 12px; border: 0; background: none; box-shadow: none; }
  #bridge .nav-link { width: 100%; height: 42px; white-space: nowrap; }
  #bridge .nav-link.active::after { left: 0; right: auto; top: 10px; bottom: 10px; width: 3px; height: auto; }
  #bridge .nav-official-partner { margin-left: auto; }
}
@media (max-width: 760px) {
  #bridge .nav-bar {
    top: 0;
    width: 100%;
    height: 56px;
    margin: 0;
    padding: 0 12px;
    border-width: 0 0 1px;
    border-radius: 0;
  }
  #bridge .nav-brand-text { display: inline; font-size: 19px; }
  #bridge .nav-official-partner,
  #bridge .nav-actions .hud-btn-outline:not(.nav-message-link),
  #bridge .nav-actions .hud-btn-primary { display: none; }
  /* 登录后手机上仍显示“消息”和未读数，标签栏的“我的”不带未读提示 */
  #bridge .nav-actions .nav-message-link { min-height: 30px; padding: 0 8px; font-size: 12px; }
  #bridge .nav-actions { margin-left: 0; }
  #bridge .theme-toggle span { display: none; }
  .bridge-command-trigger { margin-left: auto; }
  #bridge .app-shell { padding-bottom: 96px; }
  #bridge .site-footer { margin-bottom: 84px; }

  .bridge-tabbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 80;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    align-items: end;
    height: calc(64px + env(safe-area-inset-bottom));
    padding: 0 6px env(safe-area-inset-bottom);
    border-top: 1px solid var(--edge);
    background: rgba(5, 8, 14, 0.94);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
  }
  :root[data-theme="light"] .bridge-tabbar { background: rgba(255, 253, 248, 0.96); }
  .bridge-tabbar a {
    display: grid;
    justify-items: center;
    gap: 3px;
    height: 58px;
    padding-top: 9px;
    color: var(--t3);
    font-size: 11.5px;
    text-decoration: none;
  }
  .bridge-tabbar a svg { width: 23px; height: 23px; }
  .bridge-tabbar a.active { color: var(--am); }
  .bridge-tabbar-kaiming {
    justify-self: center;
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin-bottom: 8px;
    border: 2px solid var(--am);
    border-radius: 50%;
    background: radial-gradient(circle at 50% 40%, rgba(var(--am-rgb), 0.25), var(--bg) 70%);
    color: var(--t1);
    font-family: var(--font-serif);
    font-size: 18px;
    font-weight: 800;
    box-shadow: 0 0 24px rgba(var(--am-rgb), 0.45);
    cursor: pointer;
  }
  :root[data-theme="light"] .bridge-tabbar-kaiming { background: #fff; color: var(--am); }
  #bridge .assistant-launcher { display: none; }
}

/* ==========================================================================
 * 通用分区标签（关于 / 百科 / 深渊）和登录注册
 * ========================================================================== */
#bridge .about-subnav, #bridge .wiki-mode-tabs { display: flex; flex-wrap: wrap; gap: 0 4px; border-bottom: 1px solid var(--edge); background: none; padding: 0; box-shadow: none; }
#bridge .about-subnav a, #bridge .wiki-mode-tab {
  position: relative;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  padding: 0 14px;
  border: 0;
  border-radius: 0;
  background: none;
  color: var(--t2);
  font-size: 15px;
  text-decoration: none;
  box-shadow: none;
}
#bridge .about-subnav a:hover, #bridge .wiki-mode-tab:hover { color: var(--t1); background: none; }
#bridge .about-subnav a.active, #bridge .wiki-mode-tab.is-active { color: var(--am-hi); background: none; }
#bridge .about-subnav a.active::after, #bridge .wiki-mode-tab.is-active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: -1px; height: 2px; border-radius: 2px; background: var(--am); box-shadow: 0 0 10px rgba(var(--am-rgb), 0.6); }
:root[data-theme="light"] #bridge .about-subnav a.active { background: none; color: var(--am); }
#bridge .exchange-mode-tabs button[aria-selected="true"], #bridge .exchange-mode-tabs .is-active { border-color: var(--am); background: rgba(var(--am-rgb), 0.12); color: var(--am-hi); }
#bridge .member-auth-card .auth-card button[type="submit"], #bridge .member-auth-card form button[type="submit"] {
  border: 0;
  background: linear-gradient(180deg, var(--am-hi), var(--am));
  color: var(--am-ink);
  font-weight: 700;
  box-shadow: 0 10px 28px rgba(var(--am-rgb), 0.22);
}
#bridge .member-auth-emblem { color: var(--am); }

/* ---------- 开明回答的五个部分：思路 / 结论 / 依据 / 下一步 / 来源（设计图 15） ---------- */
#bridge .message.assistant .agent-trace {
  margin: 0 0 10px;
  border: 1px solid rgba(var(--cy-rgb), 0.28);
  border-radius: 10px;
  background: rgba(var(--cy-rgb), 0.04);
}
#bridge .message.assistant .agent-trace > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
  padding: 7px 12px;
  color: var(--cy);
  font-size: 13px;
  cursor: pointer;
}
#bridge .message.assistant .agent-trace > summary b { font-weight: 500; }
#bridge .message.assistant .agent-trace > summary code { color: var(--t3); font-family: var(--font-mono); font-size: 12px; background: none; }
#bridge .message.assistant:not(.pending):has(.assistant-task-ui:not(.is-plain-answer)) .assistant-message-body > p:first-of-type {
  position: relative;
  margin: 0;
  padding: 26px 16px 12px;
  border-left: 3px solid var(--am);
  border-radius: 0 10px 10px 0;
  background: linear-gradient(90deg, rgba(var(--am-rgb), 0.10), rgba(var(--am-rgb), 0.02));
}
#bridge .message.assistant:not(.pending):has(.assistant-task-ui:not(.is-plain-answer)) .assistant-message-body > p:first-of-type::before {
  content: "结论";
  position: absolute;
  top: 7px;
  left: 16px;
  color: var(--am);
  font-size: 12px;
  letter-spacing: 0.1em;
}
#bridge .assistant-task-ui .assistant-card-list::before,
#bridge .assistant-task-ui .assistant-guide-list::before,
#bridge .assistant-task-ui .assistant-next-step::before {
  display: block;
  grid-column: 1 / -1;
  width: 100%;
  margin: 4px 0 2px;
  color: var(--t3);
  font-size: 12px;
  letter-spacing: 0.12em;
}
#bridge .assistant-task-ui .assistant-card-list::before { content: "依据 · 点开可看原始数据"; }
#bridge .assistant-task-ui .assistant-guide-list::before { content: "下一步"; }
#bridge .assistant-task-ui .assistant-guide-list { flex-wrap: wrap; }
#bridge .assistant-task-ui .assistant-sources { border-top: 1px dashed var(--edge); padding-top: 8px; }
#bridge .assistant-task-ui .assistant-sources > summary::before { content: "来源 · "; color: var(--gr); }

/* ---------- 开明停靠条（各页右下角，设计图 08–14） ---------- */
.kaiming-dockbar {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 60;
  width: min(400px, calc(100vw - 44px));
  display: grid;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid rgba(var(--am-rgb), 0.55);
  border-radius: 16px;
  background: var(--panel-solid);
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5), 0 0 30px rgba(var(--am-rgb), 0.12);
}
.kaiming-dockbar[hidden] { display: none; }
html.kaiming-dockbar-on #bridge .assistant-launcher { display: none; }
html.kaiming-dockbar-on #bridge .app-shell { padding-bottom: 190px; }
.kaiming-dockbar header { display: flex; align-items: center; gap: 10px; min-width: 0; }
.kaiming-dockbar header > div { flex: 1; min-width: 0; }
.kaiming-dockbar header strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13.5px; font-weight: 500; color: var(--t1); }
.kaiming-dockbar .bridge-kicker { color: var(--am); font-size: 11px; }
.kaiming-dockbar .bridge-kicker span { color: var(--t3); letter-spacing: 0.04em; }
.kaiming-dockbar-mark {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1.5px solid var(--am);
  border-radius: 50%;
  color: var(--am);
}
.kaiming-dockbar-mark svg { width: 20px; height: 20px; }
.kaiming-dockbar-expand,
.kaiming-dockbar-close {
  flex: none;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid var(--edge-hi);
  border-radius: 8px;
  background: none;
  color: var(--t2);
  font: inherit;
  font-size: 12.5px;
  cursor: pointer;
}
.kaiming-dockbar-expand kbd { font-family: var(--font-mono); font-size: 11px; color: var(--t3); }
.kaiming-dockbar-close { padding: 0 9px; font-size: 16px; line-height: 1; }
.kaiming-dockbar-expand:hover,
.kaiming-dockbar-close:hover { color: var(--t1); border-color: rgba(var(--am-rgb), 0.55); }
.kaiming-dockbar-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.kaiming-dockbar-chips button {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid var(--edge-hi);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--t1);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.kaiming-dockbar-chips button.is-action { border-color: rgba(var(--cy-rgb), 0.5); color: var(--cy); background: rgba(var(--cy-rgb), 0.06); }
.kaiming-dockbar-chips button:hover { border-color: rgba(var(--am-rgb), 0.6); }
.kaiming-dockbar-ask { display: flex; align-items: center; gap: 8px; padding: 0 6px 0 12px; border: 1px solid rgba(var(--am-rgb), 0.35); border-radius: 10px; }
#bridge .kaiming-dockbar-ask input { flex: 1; padding: 0; box-shadow: none; border-radius: 0; min-width: 0; min-height: 38px; border: 0; background: none; color: var(--t1); font: inherit; font-size: 14px; outline: none; }
.kaiming-dockbar-ask button { border: 0; background: none; color: var(--t3); font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em; cursor: pointer; }
.kaiming-dockbar-ask:focus-within { border-color: var(--am); }
@media (max-width: 760px) {
  .kaiming-dockbar { display: none !important; }
  html.kaiming-dockbar-on #bridge .app-shell { padding-bottom: 0; }
}

/* ---------- 通用：界面版本切换、导航角标、表单输入（各页共用） ---------- */
/* 通用输入框底色 */
#bridge input[type="text"]:not([class*="bridge"]),
#bridge input[type="search"]:not([class*="bridge"]):not([data-bridge-command-input]),
#bridge input[type="number"],
#bridge input:not([type]),
#bridge select,
#bridge textarea:not([name="query"]) {
  background-color: rgba(0, 0, 0, 0.28);
  border: 1px solid var(--edge-hi);
  border-radius: 8px;
}
:root[data-theme="light"] #bridge input[type="text"],
:root[data-theme="light"] #bridge input[type="search"],
:root[data-theme="light"] #bridge input[type="number"],
:root[data-theme="light"] #bridge input:not([type]),
:root[data-theme="light"] #bridge select,
:root[data-theme="light"] #bridge textarea { background-color: #fff; }
#bridge .bridge-ask-row input[name="query"],
#bridge .bridge-command-form input { background: none; border: 0; }

/* ---- 界面版本切换：导航栏“旧版”与主题菜单里的切回入口 ---- */
#bridge .nav-ui-switch {
  display: inline-flex; align-items: center; height: 30px; padding: 0 10px;
  border: 1px solid var(--edge); border-radius: 8px; color: var(--t2);
  font-size: 12px; text-decoration: none; white-space: nowrap;
}
#bridge .nav-ui-switch:hover, #bridge .nav-ui-switch:focus-visible { color: var(--am); border-color: rgba(var(--am-rgb), .55); }
.bridge-ui-classic {
  display: grid; gap: 2px; margin-top: 8px; padding: 10px 12px;
  border: 1px solid var(--edge); border-radius: 10px; color: var(--t1); text-decoration: none;
}
.bridge-ui-classic small { color: var(--t3); font-size: 11px; line-height: 1.4; }
.bridge-ui-classic:hover, .bridge-ui-classic:focus-visible { border-color: var(--am); }
@media (max-width: 760px) {
  #bridge .nav-ui-switch { height: 28px; padding: 0 8px; font-size: 11px; }
}

#bridge .nav-bridge-link { position: relative; }
#bridge .nav-bridge-link .nav-message-badge { background: var(--am); color: var(--am-ink); }
.bridge-tabbar a { position: relative; }
.bridge-tabbar-dot { position: absolute; top: 6px; right: calc(50% - 16px); width: 8px; height: 8px; border-radius: 50%; background: var(--am); box-shadow: 0 0 0 2px var(--bg); }

/* ==========================================================================
 * 战场重现
 * ========================================================================== */
#bridge .timeline-bridge { padding: 0 32px 32px; }
#bridge .timeline-bridge .compact-page-hud { margin-bottom: 0; }
#bridge input[type="datetime-local"], #bridge input[type="date"] {
  min-height: 38px;
  padding: 0 10px;
  border: 1px solid var(--edge-hi);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.25);
  color: var(--t1);
  font-family: var(--font-mono);
  color-scheme: dark;
}
:root[data-theme="light"] #bridge input[type="datetime-local"], :root[data-theme="light"] #bridge input[type="date"] { background: var(--panel-solid); color-scheme: light; }
#bridge .timeline-bridge .diplomacy-promo { border-color: rgba(var(--cy-rgb), 0.3); }
@media (max-width: 760px) { #bridge .timeline-bridge { padding: 0 14px 24px; } }
#bridge .bridge-field { display: grid; gap: 6px; color: var(--t3); font-size: 12px; }
#bridge [data-timeline-prefill-note] { color: var(--t3); font-size: 12px; align-self: center; }

/* ---------- 通用：占位行、实时圆点、小标题（首页 / 舰桥 / 工具页共用） ---------- */
.bridge-live-dot { display: inline-flex; align-items: center; gap: 6px; color: var(--t3); font-size: 12px; }
.bridge-live-dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--gr); box-shadow: 0 0 8px var(--gr); }
:root[data-fx="rich"] .bridge-live-dot::before { animation: bridge-pulse 2s ease-in-out infinite; }
.is-empty { color: var(--t3); font-size: 13px; list-style: none; padding: 8px 0; }
.bw-kicker { font-family: var(--font-display); font-size: 11.5px; letter-spacing: 0.22em; color: var(--cy); text-transform: uppercase; }
.bw-kicker.is-gold { color: var(--am); }
#bridge .hud-btn-outline.is-tool { border-color: rgba(var(--cy-rgb), 0.5); color: var(--cy); }
#bridge .hud-btn-outline.is-kaiming { border-color: rgba(var(--am-rgb), 0.55); color: var(--am); }
.bridge-kicker.is-red { color: var(--rd) !important; }
@media (max-width: 760px) {
  #bridge .compact-page-hud { grid-template-columns: 1fr; grid-template-areas: "head" "sub" "actions" "tags"; padding: 16px 0 20px; }
  #bridge .compact-page-actions { justify-content: flex-start; }
  #bridge .bridge-page-status { justify-items: start; }
}

/* Header keyboard hints are desktop affordances. */
@media (max-width: 760px) { #bridge .bridge-command-trigger kbd, #bridge .nav-search-trigger kbd, #bridge [data-command-open] kbd, #bridge kbd { display: none; } }
