@charset "UTF-8";
/* ==========================================================================
   ISO Mobile Design System · 全站统一移动规范
   --------------------------------------------------------------------------
   适用：工程部资料站 / 东成大学 / power-tools-kb / ReportChecker /
         LIMS / tool-test-app
   原则：
     1. 仅作用于 ≤768px，桌面端版式不变（少量安全规则除外）
     2. 白底 + 深灰正文 + 单一 ISO 蓝强调，无阴影、无渐变
     3. 正文 ≥15px，可点区域 ≥44px，表格/图片不撑破屏幕
     4. 所有页面共用同一套令牌与组件，保证观感一致
   ========================================================================== */

@media (max-width: 768px) {
  :root {
    --iso-bg: #ffffff;
    --iso-fg: #111827;
    --iso-body: #374151;
    --iso-muted: #6b7280;
    --iso-line: #e5e7eb;
    --iso-line-strong: #d1d5db;
    --iso-accent: #0b5fa5;
    --iso-accent-weak: #eef4fa;
    --iso-radius: 4px;
    --iso-gap: 16px;
    --iso-pad: 14px;
    --iso-fs-body: 16px;
    --iso-fs-small: 13px;
    --iso-fs-tiny: 12px;
    --iso-tap: 44px;
    --iso-safe-top: env(safe-area-inset-top, 0px);
    --iso-safe-bottom: env(safe-area-inset-bottom, 0px);
    --iso-safe-left: env(safe-area-inset-left, 0px);
    --iso-safe-right: env(safe-area-inset-right, 0px);
  }

  /* ---------- 基础 ---------- */
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    padding-left: var(--iso-safe-left);
    padding-right: var(--iso-safe-right);
  }

  body {
    background: var(--iso-bg) !important;
    color: var(--iso-body) !important;
    font-family: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei",
      "Segoe UI", system-ui, -apple-system, sans-serif !important;
    font-size: var(--iso-fs-body) !important;
    line-height: 1.7 !important;
    max-width: 100% !important;
    overflow-x: clip !important;
    padding-top: calc(var(--iso-safe-top) + 8px) !important;
    padding-bottom: calc(var(--iso-safe-bottom) + 24px) !important;
    -webkit-font-smoothing: antialiased;
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  img,
  video,
  canvas,
  svg,
  iframe {
    max-width: 100% !important;
    height: auto !important;
  }

  /* ---------- 标题层级 ---------- */
  h1, h2, h3, h4, h5, h6 {
    color: var(--iso-fg) !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    letter-spacing: 0 !important;
    margin: 1.1em 0 0.5em !important;
  }

  h1 {
    font-size: clamp(22px, 6.2vw, 26px) !important;
    padding-bottom: 10px !important;
    border-bottom: 2px solid var(--iso-accent) !important;
  }

  h2 {
    font-size: clamp(19px, 5.2vw, 22px) !important;
    padding-bottom: 8px !important;
    border-bottom: 1px solid var(--iso-line) !important;
  }

  h3 { font-size: 17px !important; }
  h4 { font-size: 16px !important; }
  h5, h6 { font-size: 15px !important; }

  p, li, dd, dt, td, th {
    font-size: var(--iso-fs-body);
    line-height: 1.7;
  }

  p { margin: 0.65em 0 !important; }

  small, .small, .meta, .subtitle, figcaption, .caption {
    font-size: var(--iso-fs-small) !important;
    color: var(--iso-muted) !important;
  }

  /* 数字与编号对齐 */
  .num, .count, .stat, .stat-num, .portal-stat-num, .value, time {
    font-variant-numeric: tabular-nums;
  }

  /* ---------- 链接与按钮 ---------- */
  a {
    color: var(--iso-accent);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
  }

  p a, li a, td a, dd a {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  button, .btn, input[type="button"], input[type="submit"], [role="button"] {
    min-height: var(--iso-tap) !important;
    padding: 10px 16px !important;
    border-radius: var(--iso-radius) !important;
    font-size: 15px !important;
    box-shadow: none !important;
  }

  input, select, textarea {
    font-size: 16px !important; /* 防止 iOS 自动缩放 */
    border: 1px solid var(--iso-line-strong) !important;
    border-radius: var(--iso-radius) !important;
    background: #fff !important;
    color: var(--iso-fg) !important;
  }

  /* ---------- 容器与分栏 ---------- */
  .container, .wrap, .wrapper, .main, .content, .page, .page-wrap,
  .detail-container, .doc-container, .article, .post, .sheet {
    width: auto !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: var(--iso-gap) !important;
    padding-right: var(--iso-gap) !important;
    float: none !important;
  }

  section, .section {
    padding-top: 12px !important;
    padding-bottom: 12px !important;
  }

  .grid, .row, .columns, .two-columns, .two-col, .layout,
  [class$="-grid"], [class$="-columns"], [class*="-grid-"] {
    display: block !important;
    grid-template-columns: 1fr !important;
    flex-direction: column !important;
    gap: var(--iso-gap) !important;
    width: 100% !important;
  }

  /* 入口型网格保留两列，避免手机上一屏只放一个入口 */
  .nav-grid, .entry-grid, .portal-grid, .module-grid, .shortcut-grid,
  .quick-grid, .icon-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .sidebar, aside, .side, .aside, .left-panel, .right-panel {
    display: block !important;
    width: auto !important;
    position: static !important;
    float: none !important;
    margin: 0 0 var(--iso-gap) !important;
  }

  /* ---------- 卡片与列表 ---------- */
  .card, .panel, .box, .tile, .item, .list-item, .row-item,
  .portal-stat, .staff-item, .gallery-item, .equipment-item,
  .clause, .nav-item, .module, .block, .entry, .course-item,
  .doc-item, .record-item {
    width: auto !important;
    max-width: 100% !important;
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    border: 1px solid var(--iso-line) !important;
    border-radius: var(--iso-radius) !important;
    box-shadow: none !important;
    background: #fff !important;
    padding: var(--iso-pad) !important;
    margin-bottom: 12px !important;
  }

  .nav-grid .nav-item, .icon-grid .nav-item {
    margin-bottom: 0 !important;
    min-height: 72px;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 6px;
  }

  /* 标签 */
  .tag, .badge, .label, .chip, .pill, .status, .tag-sm {
    display: inline-flex !important;
    align-items: center;
    min-height: 24px !important;
    padding: 2px 8px !important;
    font-size: var(--iso-fs-tiny) !important;
    line-height: 1.4 !important;
    color: var(--iso-accent) !important;
    background: var(--iso-accent-weak) !important;
    border: 1px solid #d6e4f2 !important;
    border-radius: 2px !important;
  }

  /* ---------- 页头 / 导航 ---------- */
  header, .header, .topbar, .top-bar, .navbar, .nav-bar,
  .site-header, .page-header, .doc-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255, 255, 255, 0.97) !important;
    border-bottom: 1px solid var(--iso-line) !important;
    box-shadow: none !important;
    padding: 10px var(--iso-gap) !important;
    margin: 0 -0px 12px !important;
  }

  header h1, .header h1, .page-header h1 {
    font-size: 18px !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  nav ul, .nav ul, .menu ul, .tabs, .tab-bar {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 2px 0 6px !important;
    list-style: none !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  nav ul::-webkit-scrollbar, .tabs::-webkit-scrollbar { display: none; }

  nav a, .nav a, .tabs a, .tab {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding: 8px 12px !important;
    white-space: nowrap;
    border: 1px solid var(--iso-line) !important;
    border-radius: var(--iso-radius) !important;
    color: var(--iso-fg) !important;
  }

  /* ---------- 目录 ---------- */
  .toc, nav.toc, .table-of-contents {
    max-height: 42vh;
    overflow-y: auto;
    border: 1px solid var(--iso-line) !important;
    border-radius: var(--iso-radius) !important;
    padding: 12px 14px !important;
    margin: 12px 0 !important;
    background: #fafbfc !important;
  }

  .toc a {
    display: block;
    padding: 8px 0 !important;
    border-bottom: 1px solid #f1f2f4;
    text-decoration: none !important;
    min-height: 36px;
  }

  .toc a:last-child { border-bottom: 0; }

  /* ---------- 表格 ---------- */
  table {
    width: 100% !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    font-size: 14px !important;
    line-height: 1.55 !important;
    background: #fff !important;
  }

  th, td {
    padding: 9px 10px !important;
    border: 1px solid var(--iso-line) !important;
    vertical-align: top;
    word-break: break-word;
  }

  th {
    background: #f7f8fa !important;
    color: var(--iso-fg) !important;
    font-weight: 600 !important;
    white-space: nowrap;
  }

  .table-scroll, .table-box, .table-wrap, .table-responsive {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--iso-radius);
    margin: 12px 0 !important;
  }

  .table-scroll table, .table-box table, .table-wrap table, .table-responsive table {
    min-width: 560px;
  }

  /* ---------- 图片与插图 ---------- */
  figure, .figure, .image, .img-box, .photo, .gallery-photo {
    margin: 14px 0 !important;
    max-width: 100% !important;
  }

  figure img, .figure img, .img-box img, .photo img, .gallery-photo img,
  .doc img, .content img, article img {
    display: block;
    width: auto;
    max-width: 100% !important;
    height: auto !important;
    border: 1px solid var(--iso-line) !important;
    border-radius: 2px;
    margin: 0 auto;
  }

  figcaption, figure .cap, .figure .cap {
    margin-top: 8px !important;
    text-align: center;
    font-size: var(--iso-fs-small) !important;
    color: var(--iso-muted) !important;
  }

  /* ---------- 折叠区、提示框 ---------- */
  details, .collapsible {
    border: 1px solid var(--iso-line) !important;
    border-radius: var(--iso-radius) !important;
    padding: 10px 14px !important;
    margin: 12px 0 !important;
    background: #fff !important;
  }

  summary {
    min-height: 40px;
    display: flex;
    align-items: center;
    cursor: pointer;
    color: var(--iso-accent) !important;
    font-weight: 500;
  }

  blockquote, .note, .notice, .tip, .warning-box, .callout {
    margin: 12px 0 !important;
    padding: 12px 14px !important;
    border: 0 !important;
    border-left: 3px solid var(--iso-accent) !important;
    background: var(--iso-accent-weak) !important;
    border-radius: 0 var(--iso-radius) var(--iso-radius) 0 !important;
    color: var(--iso-body) !important;
  }

  pre, code, kbd, samp {
    font-family: ui-monospace, "Cascadia Mono", Consolas, monospace !important;
    font-size: 13px !important;
  }

  pre {
    overflow-x: auto !important;
    padding: 12px !important;
    background: #f7f8fa !important;
    border: 1px solid var(--iso-line) !important;
    border-radius: var(--iso-radius) !important;
  }

  hr {
    border: 0 !important;
    border-top: 1px solid var(--iso-line) !important;
    margin: 20px 0 !important;
  }

  footer, .footer {
    margin-top: 24px !important;
    padding: 16px var(--iso-gap) !important;
    border-top: 1px solid var(--iso-line) !important;
    color: var(--iso-muted) !important;
    font-size: var(--iso-fs-tiny) !important;
    text-align: center;
  }

  /* ---------- 转换文档页 ---------- */
  .wrap > header.doc {
    position: static;
    padding: 0 0 12px !important;
    margin: 0 0 16px !important;
  }

  .wrap > header.doc h1 {
    font-size: clamp(21px, 5.8vw, 24px) !important;
    border-bottom: 2px solid var(--iso-accent) !important;
  }

  .wrap > header.doc .src {
    margin-top: 8px !important;
    font-size: var(--iso-fs-tiny) !important;
    color: var(--iso-muted) !important;
  }

  .wrap section {
    padding: 0 !important;
    margin: 0 0 20px !important;
  }

  .pdf-page, .page-no {
    font-size: var(--iso-fs-tiny) !important;
    color: var(--iso-muted) !important;
    border-top: 1px solid var(--iso-line) !important;
    padding-top: 6px !important;
    margin-top: 10px !important;
  }

  .ocr-tag {
    display: inline-block;
    font-size: 11px !important;
    color: var(--iso-accent) !important;
    border: 1px solid #d6e4f2 !important;
    border-radius: 2px;
    padding: 0 5px !important;
    margin-left: 6px;
  }

  /* ---------- 工具类 ---------- */
  .no-scroll { overflow: hidden !important; }
  .text-muted { color: var(--iso-muted) !important; }
  .divider { height: 1px; background: var(--iso-line); margin: 16px 0; }
}

/* 极窄屏进一步压缩 */
@media (max-width: 360px) {
  :root {
    --iso-gap: 12px;
    --iso-pad: 12px;
    --iso-fs-body: 15px;
  }
  body { font-size: 15px !important; }
  h1 { font-size: 21px !important; }
  h2 { font-size: 18px !important; }
}

/* 打印：恢复文档排版 */
@media print {
  body {
    padding: 0 !important;
    font-size: 12pt !important;
    color: #000 !important;
  }
  header, nav, footer, .toc, .no-print { display: none !important; }
  a { color: #000 !important; text-decoration: none !important; }
  table { font-size: 10pt !important; }
  img { border: 0 !important; }
}
