
    *{box-sizing:border-box}
    /* ===== 自适应兜底：任何屏幕宽度下页面不得横向溢出 ===== */
    html,body{max-width:100%;overflow-x:hidden}
    img,video,canvas,iframe{max-width:100%;height:auto}
    pre,code{white-space:pre-wrap;word-break:break-all}
    body{font-family:"Microsoft YaHei",-apple-system,sans-serif;margin:0;background:#f5f7fa;color:#333;font-size:16px}
    /* 顶部导航整行冻结：滚动时始终可见，板块可随时切换 */
    .nav{position:sticky;top:0;z-index:200;background:linear-gradient(135deg,#1565c0,#1e88e5);color:#fff;padding:0 14px;min-height:56px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;box-shadow:0 1px 6px rgba(0,0,0,.12)}
    /* 板块条：单行横向滑动，不挤压品牌与用户菜单 */
    .nav-tabs{display:flex;align-items:center;gap:6px;flex:1 1 260px;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:6px 0}
    .nav-tabs::-webkit-scrollbar{display:none}
    .nav-tabs a{flex:0 0 auto;display:inline-flex;align-items:center;gap:3px;font-size:14px;padding:6px 11px;border-radius:999px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28);line-height:1.2}
    .nav-tabs a:hover{background:rgba(255,255,255,.3)}
    .nav-tabs a.on{background:#fff;font-weight:800;border-color:#fff}
    .nav-tabs a .n{font-weight:400;opacity:.85;font-size:13px}
    .nav .brand{font-weight:800;font-size:18px;letter-spacing:.5px;white-space:nowrap;text-decoration:none;color:#fff;display:flex;align-items:center;gap:6px;line-height:1.2}
    .nav .links{margin-left:auto;display:flex;align-items:center;gap:3px;flex-wrap:wrap;justify-content:flex-end}
    .nav a{color:#fff;text-decoration:none;font-size:16px;padding:8px 11px;border-radius:7px;white-space:nowrap;line-height:1.2;transition:background .15s}
    .nav a:hover{background:rgba(255,255,255,.16)}
    .nav a.on{background:#fff;color:#1565c0;font-weight:700}
    .nav .bell{position:relative}
    .nav .badge{position:absolute;top:-3px;right:-5px;background:#e74c3c;color:#fff;border-radius:10px;padding:0 5px;font-size:11px;min-width:17px;height:17px;line-height:17px;text-align:center;font-weight:700;box-shadow:0 0 0 2px rgba(255,255,255,.5)}
    .logbar{background:#fff;border-bottom:1px solid #eef1f5;padding:8px 16px;font-size:13.5px;color:#555;display:flex;flex-wrap:wrap;gap:3px 10px;align-items:center;line-height:1.6}
    .logbar .sep{color:#cbd5e1}
    /* 内容区满屏：占满可用宽度，仅保留左右呼吸留白（按用户要求不再限宽） */
    .container{max-width:100%;margin:18px auto;padding:0 14px}
    .card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:16px}
    table{width:100%;border-collapse:collapse;font-size:15px}
    /* 统一勾选框尺寸（与公告权限勾选框一致：24×24，蓝色，手型） */
    input[type="checkbox"]{width:24px!important;height:24px!important;accent-color:#3498db!important;cursor:pointer;vertical-align:middle;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
    label{touch-action:manipulation}
    th,td{border-bottom:1px solid #eee;padding:8px 6px;text-align:left;vertical-align:top}
    th{background:#fafafa;color:#666}
    input[type=text],input[type=password],input[type=tel],input[type=email],input[type=number]{padding:8px;border:1px solid #ddd;border-radius:5px;width:100%;margin:6px 0;font-size:15px}
    /* 密码框“显示/隐藏密码”切换：包裹容器 + 右侧眼睛按钮 */
    .pw-field{position:relative;margin:6px 0}
    .pw-field input{display:block;width:100%;margin:0}
    .pw-field input[type=password],.pw-field input[type=text]{padding-right:38px}
    .pw-toggle{position:absolute;top:0;right:0;height:100%;width:34px;border:0;background:transparent;cursor:pointer;color:#9aa3af;font-size:17px;line-height:1;display:flex;align-items:center;justify-content:center}
    .pw-toggle:hover{color:#47AEFB}
    .pw-field--inline{display:inline-block;width:150px;margin:0;vertical-align:middle}
    .pw-field--inline input{padding:4px 30px 4px 6px;font-size:12px}
    .pw-field--inline .pw-toggle{width:28px;font-size:14px}
    /* 水电气单价紧凑折叠条：默认一行摘要，点击展开阶梯明细 */
    .ratebar{padding:9px 12px}
    .ratebar>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:3px 10px;font-size:13.5px;line-height:1.55}
    .ratebar>summary::-webkit-details-marker{display:none}
    .ratebar-t{font-weight:800;font-size:14.5px}
    .ratebar-p{font-variant-numeric:tabular-nums}
    .ratebar-meta{color:#64748b;font-size:12.5px;font-variant-numeric:tabular-nums}
    .ratebar-toggle{margin-left:auto;font-size:12px;color:#47AEFB;white-space:nowrap}
    .ratebar-toggle::after{content:" ▾"}
    .ratebar[open] .ratebar-toggle::after{content:" ▴"}
    .ratebar-body{margin-top:8px;padding-top:9px;border-top:1px dashed #cdd8e6}
    /* 三行堆叠变体：标题+详情同行，下面竖排三行单价 */
    .ratebar-lines{flex:1 1 100%;display:flex;flex-direction:column;gap:2px;margin-top:3px}
    .ratebar-line{font-variant-numeric:tabular-nums;font-size:13.5px;color:#334155;white-space:nowrap}
    .ratebar-line b{color:#111}
    .ratebar-line .u{color:#64748b;font-size:12px}
    button{background:#47AEFB;color:#fff;border:0;padding:9px 16px;border-radius:5px;cursor:pointer;font-size:14px}
    /* ===== 全局按钮交互反馈：按下缩放 + 点击涟漪 + 执行中旋转指示 ===== */
    button{position:relative;overflow:hidden;transition:transform .08s ease,filter .15s ease}
    button:active{transform:scale(.94)}
    button:disabled{opacity:.6;cursor:not-allowed}
    .btn-busy{pointer-events:none;filter:saturate(.55) brightness(.96)}
    .btn-busy::after{content:"";display:inline-block;width:11px;height:11px;margin-left:7px;
      border:2px solid rgba(255,255,255,.55);border-top-color:#fff;border-radius:50%;
      vertical-align:-1px;animation:btnspin .7s linear infinite}
    @keyframes btnspin{to{transform:rotate(360deg)}}
    .ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);
      transform:scale(0);animation:ripple .55s ease-out forwards;pointer-events:none}
    .fab-mini .ripple,.btn-light .ripple{background:rgba(21,101,192,.22)}
    @keyframes ripple{to{transform:scale(2.6);opacity:0}}
    button.danger{background:#e74c3c}
    .flash{padding:10px 14px;border-radius:6px;margin-bottom:12px;font-size:14px}
    .flash.success{background:#e7f7ec;color:#1d7a3a}
    .flash.danger{background:#fdecea;color:#b03a2e}
    .flash.warning{background:#fff8e1;color:#8a6d00}
    .muted{color:#8a94a3;font-size:14px}
    .pager{text-align:center;margin:14px 0}
    .pager a{padding:6px 12px;margin:0 4px;background:#fff;border:1px solid #ddd;border-radius:5px;text-decoration:none;color:#333}
    .kw{display:inline-block;background:#eef6ff;border:1px solid #cfe3ff;color:#1b6ec2;border-radius:14px;padding:4px 12px;margin:4px 4px 4px 0;font-size:13px}
    .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
    /* 公告卡片：圆角 + 边框 + 阴影；状态用左侧色条区分（手机单列、宽屏双列）
       固定高度 + 正文区内部滚动：内容长短不一时卡片高度保持一致，板块不会被撑得参差不齐 */
    .ann{display:flex;flex-direction:column;height:390px;background:#fff;border:1px solid #e6ebf2;border-left:4px solid #cbd5e1;border-radius:12px;padding:12px 14px;box-shadow:0 1px 2px rgba(15,23,42,.04),0 2px 8px rgba(15,23,42,.04)}
    .ann+.ann{margin-top:12px}
    .ann.past{border-left-color:#cbd5e1;background:#fafbfc;color:#9ca3af}
    .ann.ongoing{border-left-color:#ef4444}
    .ann.soon{border-left-color:#f59e0b}
    .ann.future{border-left-color:#22c55e}
    .ann-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}
    .ann-head b{font-size:16.5px}
    .ann-head .muted{white-space:nowrap}
    /* 正文滚动区：内容超长时在卡片内部下拉浏览，不撑高卡片（保持板块整齐） */
    .ann-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:4px}
    .ann-body::-webkit-scrollbar{width:6px}
    .ann-body::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}
    .ann-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
    .ann-body::-webkit-scrollbar-thumb:hover{background:#94a3b8}
    .ann-row{margin-top:7px;font-size:15.5px;line-height:1.65;word-break:break-word;display:flex;gap:8px;align-items:flex-start}
    .ann-row .lab{flex:0 0 auto;margin-right:0}
    /* 公告来源 / 原文超链 / 仅供参考 */
    .ann-src{margin-top:10px;padding-top:8px;border-top:1px dashed #eef1f5;font-size:12.5px;color:#8a94a3;line-height:1.6}
    /* 命中关注地区的公告：红色醒目提示（放在状态色条之后，优先级更高） */
    .ann.hit{border-color:#f6c9c9;border-left-color:#e74c3c;background:#fff8f8;color:inherit}
    .kwmark{background:#fdecec;color:#e74c3c;border-radius:3px;padding:0 2px;font-weight:700}
    .hitbadge{display:inline-block;background:#e74c3c;color:#fff;border-radius:4px;font-size:11px;padding:1px 7px;margin-left:6px;vertical-align:2px;white-space:nowrap}
    .ann-src a{color:#1b6ec2;text-decoration:none}
    .ann-src a:hover{text-decoration:underline}
    .ann-src-note{color:#b45309;font-weight:600}
    /* 民生服务信息（办公地点 / 服务电话） */
    .svcbar{background:#f6f8fc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;margin-bottom:14px;font-size:13.5px;line-height:1.75}
    .svcbar .svc-name{font-weight:800;font-size:14.5px;margin-bottom:2px}
    .svcbar .svc-row{display:flex;gap:8px;flex-wrap:wrap}
    .svcbar .svc-lab{color:#64748b;white-space:nowrap}
    .svcbar a{color:#1b6ec2;text-decoration:none;font-weight:700}
    .svcbar a:hover{text-decoration:underline}
    .svcbar .svc-note{color:#94a3b8;font-size:12px;margin-top:4px}
    .svc-grid{display:grid;grid-template-columns:1fr;gap:10px}
    @media (min-width:640px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
    .lab{display:inline-block;background:#f2f6fb;color:#5b7a9d;border-radius:4px;padding:2px 8px;margin-right:8px;font-size:13px;vertical-align:1px;white-space:nowrap}
    /* 页面大标题：左侧主题色竖条，醒目 */
    .page-title{font-size:21px;font-weight:800;margin:12px 0 12px;padding-left:11px;border-left:5px solid #1565c0;line-height:1.45}
    /* 板块标签：手机 2 列 → 平板 4 列 → 宽屏(≥1280px) 8 列；文字不换行避免挤压 */
    .tabs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-bottom:14px}
    .tabs-grid a{display:flex;align-items:center;justify-content:center;gap:3px;padding:12px 6px;border-radius:10px;font-size:15.5px;font-weight:700;text-decoration:none;text-align:center;line-height:1.35;white-space:nowrap}
    @media (min-width:640px){.tabs-grid{grid-template-columns:repeat(4,1fr);gap:10px}}
    @media (min-width:640px){.tabs-grid a{font-size:14.5px;padding:12px 8px}}
    @media (min-width:1280px){.tabs-grid{grid-template-columns:repeat(8,1fr)}}
    @media (min-width:1280px){.tabs-grid a{font-size:15px;padding:13px 8px}}
    /* 导航“管理”下拉 */
    .nav-admin{position:relative;display:inline-block}
    .nav-admin summary{list-style:none;cursor:pointer;color:#fff;font-size:16px;padding:8px 11px;border-radius:7px;white-space:nowrap;line-height:1.2;transition:background .15s}
    .nav-admin summary::-webkit-details-marker{display:none}
    .nav-admin summary::after{content:" ▾";font-size:12px;opacity:.85}
    .nav-admin[open] summary,.nav-admin summary:hover{background:rgba(255,255,255,.16)}
    .nav-admin .menu{position:absolute;right:0;top:calc(100% + 6px);background:#fff;border-radius:14px;box-shadow:0 6px 22px rgba(0,0,0,.18);padding:10px;min-width:auto;max-width:330px;z-index:99;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px}
    .nav-admin .menu a{color:#334155;font-size:14px;padding:7px 14px;border-radius:999px;background:#eef2f7;font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
    .nav-admin .menu a:hover{background:#1565c0;color:#fff}
    .nav-admin .menu a.on{color:#fff;font-weight:700;background:#1565c0}
    /* 公告列表容器：默认单列；宽屏(≥1280px)双列，蛇形阅读顺序保持紧急度排序 */
    .ann-list{display:grid;grid-template-columns:1fr;gap:12px}
    .ann-list .ann+.ann{margin-top:0}
    @media (min-width:1280px){
      .ann-list{grid-template-columns:repeat(2,1fr);column-gap:22px;row-gap:14px;align-items:start}
    }
    /* ===== 桌面端（≥1024px）宽松适配：加宽容器、增大留白与行距 ===== */
    @media (min-width:1024px){
      .container{max-width:100%;padding:0 24px;margin:22px auto}
      .card{padding:22px 26px}
      .nav{padding:0 26px}
      .nav .links{gap:6px}
      .logbar{padding:10px 26px}
      .ann{padding:16px 18px;height:440px}
      .ann-row{margin-top:8px}
      .ann-src{margin-top:8px;padding-top:7px}
      .svcbar{padding:14px 18px}
      .pager{margin:18px 0}
      /* 桌面端正文整体放大一档，提升可读性（导航/标签栏因横向空间有限保持原字号） */
      body{font-size:17px}
      .ann-row{font-size:16.5px}
      .ann-head b{font-size:17.5px}
      .muted{font-size:14.5px}
      .svcbar{font-size:14.5px}
      .svcbar .svc-name{font-size:15.5px}
      .svcbar .svc-note{font-size:12.5px}
      .lab{font-size:13.5px}
      .ann-src{font-size:13.5px}
      .page-title{font-size:23px}
      .kw{font-size:13.5px}
      table{font-size:16px}
      th,td{padding:9px 7px}
      input[type=text],input[type=password],input[type=tel],input[type=email],input[type=number]{font-size:16px;padding:9px}
      button{font-size:15px;padding:10px 18px}
      .ratebar>summary{font-size:14.5px}
      .ratebar .ratebar-t{font-size:15.5px}
      .ratebar-line{font-size:14.5px}
    }
    /* 超宽屏（≥1536px）：公告双列布局下卡片更宽，≥1920px 升三列充分利用空间 */
    @media (min-width:1536px){
      .container{padding:0 28px}
    }
    @media (min-width:1920px){
      .ann-list{grid-template-columns:repeat(3,1fr);column-gap:24px;row-gap:14px}
    }
    @media (max-width:640px){
      /* 手机上公交查询：radio 组独占一行，输入框+按钮固定同一行 */
      .bus-modes{flex-basis:100% !important}
      #busQ,#busQ2{max-width:none !important;flex:1 1 120px !important}
      /* 手机：品牌名与板块条同行（板块可横滑），用户菜单另起一行，控制导航总高 */
      .nav{height:auto;flex-wrap:wrap;padding:8px 10px;gap:6px 8px}
      .nav .brand{font-size:15px;width:auto;padding:0;border-bottom:none;flex:0 0 auto}
      .nav-tabs{flex:1 1 auto;padding:2px 0;gap:5px}
      .nav-tabs a{font-size:13.5px;padding:5px 9px}
      .nav .links{margin-left:0;width:100%;justify-content:flex-start;gap:2px}
      .nav a{margin:0;font-size:15px;padding:8px 10px}
      .nav-admin summary{font-size:15px;padding:8px 10px}
      .nav-admin .menu{right:auto;left:0}
      .page-title{font-size:19px}
      .logbar{padding:6px 10px;font-size:12px}
      .container{margin:10px auto;padding:0 10px}
      .card{padding:12px;margin-bottom:12px;border-radius:6px}
      h2{font-size:19px}
      button{padding:10px 14px}
      form[style*="flex"]{flex-wrap:wrap}
      form[style*="flex"] input[type=text]{flex:1 1 140px}
    }
    /* ===== 悬浮按钮组（右下角）：主按钮回到顶部 + 刷新 + 板块切换子菜单 ===== */
    /* pointer-events:none：wrap 盒子会被隐藏的菜单撑大，绝不能让它拦截页面点击
      （否则页面按钮滚动到该区域时「点了没反应」、点空白处又误触发声音） */
    .fab-wrap{position:fixed;right:16px;bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:9998;
      display:flex;flex-direction:column;align-items:flex-end;gap:10px;
      opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;
      transition:opacity .22s ease,transform .22s ease,visibility .22s}
    .fab-wrap.show{opacity:1;visibility:visible;transform:none}
    /* 只有真实按钮 / 展开后的菜单项接收点击，容器与其余空白区域一律穿透 */
    .fab-btn,.fab-menu.open a{pointer-events:auto}
    .fab-btn{border:0;border-radius:50%;cursor:pointer;display:flex;flex-direction:column;
      align-items:center;justify-content:center;font-family:inherit;
      -webkit-tap-highlight-color:transparent;transition:transform .15s,background .15s,box-shadow .15s}
    .fab-main{width:46px;height:46px;background:#1565c0;color:#fff;font-size:19px;line-height:1;
      box-shadow:0 4px 14px rgba(21,101,192,.35)}
    .fab-main .fab-txt{font-size:10px;margin-top:1px;letter-spacing:.5px}
    .fab-main:hover{background:#0d47a1}
    .fab-main:active{transform:scale(.94)}
    .fab-mini{width:40px;height:40px;background:#fff;color:#475569;font-size:17px;
      border:1px solid #d5dde7;box-shadow:0 2px 10px rgba(15,23,42,.14)}
    .fab-mini:hover{background:#eef2f7;color:#1565c0}
    .fab-mini:active{transform:scale(.94)}
    .fab-mini .fab-txt{font-size:9px;margin-top:1px}
    /* 刷新图标旋转反馈 */
    .fab-mini.spin .fab-ico{display:inline-block;animation:fabspin .55s linear}
    @keyframes fabspin{to{transform:rotate(360deg)}}
    /* 板块切换子菜单：平时收起，点按钮向上弹出 */
    .fab-menu{display:flex;flex-direction:column;align-items:flex-end;gap:6px;
      opacity:0;visibility:hidden;transform:translateY(8px) scale(.96);transform-origin:bottom right;
      transition:opacity .18s ease,transform .18s ease,visibility .18s}
    .fab-menu.open{opacity:1;visibility:visible;transform:none}
    .fab-menu a{display:flex;align-items:center;gap:5px;background:#fff;color:#334155;
      text-decoration:none;font-size:13px;font-weight:600;padding:7px 14px;border-radius:999px;
      border:1px solid #d5dde7;box-shadow:0 2px 8px rgba(15,23,42,.12);white-space:nowrap;
      transition:transform .12s,background .15s,color .15s,box-shadow .15s}
    .fab-menu a:hover{background:#eef4fb;color:#1565c0}
    .fab-menu a:active{transform:scale(.92);box-shadow:0 1px 4px rgba(15,23,42,.18)}
    .fab-menu a.cur{background:#1565c0;color:#fff;border-color:#1565c0}
    .fab-menu a .fab-n{font-weight:400;opacity:.75;font-size:12px}
    @media (min-width:1024px){
      .fab-wrap{right:30px;bottom:32px;gap:12px}
      .fab-main{width:54px;height:54px;font-size:23px}
      .fab-main .fab-txt{font-size:11px;margin-top:2px}
      .fab-mini{width:46px;height:46px;font-size:19px}
      .fab-mini .fab-txt{font-size:10px}
    }
    @media (prefers-reduced-motion:reduce){
      .fab-wrap,.fab-menu{transition:none}
      .fab-mini.spin .fab-ico{animation:none}
      html{scroll-behavior:auto}
    }
    /* ===== 客户端类型（服务端 UA 识别，body.device-*）自适应 =====
       桌面端规则见上方 ≥1024px 媒体查询；这里处理平板与手机的针对性差异。 */
    /* 平板：介于手机与桌面之间的中间态，适度加宽并放大一档 */
    /* 平板：介于手机与桌面之间的中间态，适度加宽并放大一档 */
    body.device-tablet .container{max-width:100%;padding:0 18px;margin:16px auto}
    body.device-tablet .card{padding:18px 20px}
    body.device-tablet .ann{padding:14px 14px}
    body.device-tablet{font-size:16.5px}
    body.device-tablet .ann-row{font-size:16px}
    body.device-tablet .page-title{font-size:20px}
    /* 手机：优化触控体验，按钮/输入框触控目标加大，避免误触 */
    body.device-mobile button{min-height:42px}
    body.device-mobile input[type=text],body.device-mobile input[type=password],
    body.device-mobile input[type=tel],body.device-mobile input[type=email],
    body.device-mobile input[type=number]{min-height:42px}
    body.device-mobile a,body.device-mobile button{-webkit-tap-highlight-color:rgba(21,101,192,.15)}
    body.device-mobile .nav-admin .menu{min-width:150px}
    body.device-mobile .table-wrap{margin:0 -12px}
    /* ===== 分辨率分档（<html data-vw>，JS 按视口宽度实时标记） ===== */
    /* xs（<480px，小屏手机）：进一步收紧留白、控制标题字号 */
    [data-vw="xs"] .container{margin:8px auto;padding:0 8px}
    [data-vw="xs"] .page-title{font-size:18px}
    [data-vw="xs"] .ann{padding:10px 2px}
    [data-vw="xs"] .ann-row{font-size:15px}
    [data-vw="xs"] .tabs-grid{gap:7px}
    [data-vw="xs"] .tabs-grid a{font-size:14px;padding:11px 4px}
    /* sm（480-767px，大屏手机/小屏竖屏平板）微调 */
    [data-vw="sm"] .container{margin:12px auto}
    [data-vw="sm"] .page-title{font-size:20px}
    /* lg（1024-1439px）：介于两档媒体查询之间的过渡 */
    [data-vw="lg"] .container{max-width:100%}
    /* xl（≥1440px）：超宽屏利用横向空间 */
    [data-vw="xl"] .container{max-width:100%}
    [data-vw="xl"] .card{padding:24px 30px}
  