:root {
  --ink: #17212b;
  --muted: #667789;
  --muted-2: #8a99a8;
  --line: #d8e5ef;
  --line-strong: #bed3e2;
  --page: #eef5f2;
  --paper: #fff8e9;
  --surface: rgba(255,255,255,.94);
  --surface-soft: rgba(247,251,250,.92);
  --brand: #073b4c;
  --brand-2: #0f6f8b;
  --brand-3: #23a08b;
  --accent: #d89536;
  --ok: #1f8a5b;
  --warn: #b87616;
  --bad: #b94438;
  --shadow: 0 18px 54px rgba(23, 45, 66, .11);
  --shadow-strong: 0 28px 82px rgba(23, 45, 66, .18);
  --radius: 24px;
  --radius-sm: 16px;
  --focus: 0 0 0 4px rgba(35, 160, 139, .16);
}
* { box-sizing: border-box; }
html { background: var(--page); }
body {
  margin: 0;
  color: var(--ink);
  font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
  background:
    radial-gradient(circle at 5% 0%, rgba(35, 160, 139, .22), transparent 32%),
    radial-gradient(circle at 92% 3%, rgba(216, 149, 54, .18), transparent 28%),
    linear-gradient(135deg, #eef6f3 0%, #f8fbff 48%, #fff8ec 100%);
  min-height: 100vh;
}
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(7, 59, 76, .040) 1px, transparent 1px),
    linear-gradient(90deg, rgba(7, 59, 76, .035) 1px, transparent 1px);
  background-size: 30px 30px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.52), transparent 68%);
}
.pwa-install-button {
  position: fixed;
  right: 16px;
  bottom: 18px;
  z-index: 80;
  display: none;
  width: auto !important;
  max-width: calc(100vw - 32px);
  min-height: 42px;
  margin: 0;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
  padding: 9px 15px;
  color: #fff;
  background: linear-gradient(135deg, #0f6f8b, #23a08b);
  box-shadow: 0 12px 30px rgba(7,59,76,.24);
  font: 700 14px/1.2 "PingFang SC", sans-serif;
}
.pwa-install-guide {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(7,33,44,.58);
}
.pwa-install-guide > div {
  position: relative;
  width: min(460px, 100%);
  border-radius: 22px;
  padding: 24px;
  background: #fff;
  box-shadow: 0 26px 80px rgba(0,0,0,.24);
}
.pwa-install-guide h2 { margin: 0 36px 14px 0; color: #073b4c; }
.pwa-install-guide p { margin: 10px 0; color: #405668; line-height: 1.75; }
.pwa-install-guide .pwa-secure-hint { color: #8b5a13; font-size: 13px; }
.pwa-guide-close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 36px;
  min-height: 36px;
  margin: 0;
  border: 0;
  border-radius: 50%;
  color: #31576f;
  background: #edf4f7;
  font-size: 24px;
}
main, .wrap {
  position: relative;
  max-width: 1240px;
  margin: 0 auto;
  padding: 26px 18px 64px;
}
.wrap { max-width: 1120px; }
.app-shell {
  position: relative;
  display: block;
  width: min(1540px, calc(100% - 32px));
  margin: 0 auto;
  padding: 20px 0 64px 286px;
}
.app-shell > main,
.app-shell > .wrap {
  width: 100%;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 42px !important;
}
.date-switcher {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 10px;
  margin: 12px 0 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 8px 24px rgba(23,45,66,.07);
}
.date-switcher form { display: flex; align-items: end; gap: 8px; margin: 0; }
.date-switcher label { display: grid; gap: 4px; margin: 0; color: var(--muted); font-size: 13px; font-weight: 800; }
.date-switcher input,
.date-switcher button,
.date-switcher .date-step {
  min-height: 40px;
  padding: 9px 13px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: white;
  color: var(--brand-2);
  font: inherit;
  font-weight: 850;
  text-decoration: none;
  cursor: pointer;
}
.date-switcher button,
.date-switcher .date-step.active { background: var(--brand-2); color: white; border-color: var(--brand-2); }
.side-nav {
  position: fixed;
  top: 18px;
  left: max(16px, calc((100vw - 1540px) / 2 + 16px));
  width: 262px;
  max-height: calc(100vh - 36px);
  overflow: auto;
  z-index: 80;
  padding: 16px;
  border: 1px solid rgba(190, 211, 226, .82);
  border-radius: 30px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(246,251,250,.92));
  box-shadow: var(--shadow);
  backdrop-filter: blur(14px);
}
.global-account-menu {
  position: fixed;
  top: 18px;
  right: max(16px, calc((100vw - 1540px) / 2 + 16px));
  z-index: 120;
  min-width: 132px;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 12px 30px rgba(23,45,66,.14);
}
.global-account-menu summary { padding: 10px 14px; color: var(--brand); font-weight: 900; cursor: pointer; }
.global-account-menu div { display:grid; padding: 0 8px 8px; }
.global-account-menu a { padding: 8px 10px; border-radius: 9px; color: var(--brand-2); text-decoration:none; font-weight:800; }
.global-account-menu a:hover { background:#eef6fb; }
.side-account-menu {
  margin: 10px 0 12px;
  border: 1px solid var(--line-strong);
  border-radius: 10px;
  background: #f7fbfd;
}
.side-account-menu summary { padding: 9px 12px; color: var(--brand); font-weight: 900; cursor: pointer; }
.nav-search {
  display: grid;
  gap: 5px;
  margin: 0 0 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 850;
}
.nav-search input {
  width: 100%;
  min-height: 36px !important;
  border: 1px solid var(--line-strong);
  background: #fff !important;
}
.side-account-menu div { display: grid; padding: 0 7px 7px; }
.side-account-menu a { padding: 7px 9px !important; color: var(--brand-2); text-decoration: none; }
.side-nav::-webkit-scrollbar {
  width: 8px;
}
.side-nav::-webkit-scrollbar-thumb {
  background: rgba(15, 111, 139, .22);
  border-radius: 999px;
}
.side-brand {
  padding: 16px 16px 14px;
  border-radius: 22px;
  color: white;
  background:
    radial-gradient(circle at 90% 0%, rgba(255,255,255,.24), transparent 30%),
    linear-gradient(135deg, var(--brand), var(--brand-2));
  box-shadow: 0 14px 34px rgba(15,111,139,.20);
}
.side-brand b {
  display: block;
  font-size: 22px;
  letter-spacing: .04em;
  font-family: "Songti SC", "STSong", serif;
}
.side-brand span {
  display: block;
  margin-top: 6px;
  color: rgba(255,255,255,.82);
  font-size: 13px;
}
.side-nav section {
  margin-top: 18px;
  padding-top: 4px;
}
.side-nav h3 {
  margin: 0 0 8px;
  padding: 0 8px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .10em;
}
.side-nav h4 {
  margin: 12px 0 6px;
  padding: 0 10px;
  color: var(--brand);
  font-size: 14px;
  font-weight: 950;
}
.nav-subgroup {
  margin: 8px 0 10px;
  padding: 8px 8px 8px 10px;
  border: 1px solid rgba(216, 229, 239, .72);
  border-radius: 18px;
  background: rgba(255,255,255,.58);
}
.nav-subgroup + .nav-subgroup {
  margin-top: 10px;
}
.side-nav a {
  display: flex;
  align-items: center;
  min-height: 42px;
  margin: 6px 0;
  padding: 9px 12px 9px 18px;
  border: 1px solid transparent;
  border-radius: 16px;
  color: #264555;
  font-weight: 900;
  background: transparent;
  position: relative;
  transition: background .16s ease, color .16s ease, transform .16s ease, border-color .16s ease;
}
.side-nav a::before {
  content: "";
  width: 6px;
  height: 6px;
  margin-right: 9px;
  border-radius: 999px;
  background: var(--line-strong);
  flex: 0 0 auto;
}
.side-nav a:hover {
  transform: translateX(2px);
  color: var(--brand);
  background: #eef8f6;
  border-color: var(--line);
}
.side-nav a.active {
  color: white !important;
  background: linear-gradient(135deg, var(--brand), var(--brand-3));
  border-color: transparent;
  box-shadow: 0 12px 28px rgba(35,160,139,.18);
}
.side-nav a.active::before {
  background: white;
}
h1, h2, h3 {
  letter-spacing: .015em;
  line-height: 1.28;
}
h1 {
  color: var(--brand);
  font-size: clamp(26px, 3.2vw, 38px);
}
h2 { color: var(--brand); }
h3 { color: #245262; }
p, li { line-height: 1.72; }
a {
  color: var(--brand-2);
  font-weight: 800;
  text-decoration: none;
}
a:hover { color: var(--brand); }
main > p:first-child {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin: 0 0 16px;
  padding: 10px 12px;
  border: 1px solid rgba(190, 211, 226, .76);
  border-radius: 999px;
  background: rgba(255,255,255,.68);
  box-shadow: 0 10px 28px rgba(23,45,66,.06);
}
main > p:first-child a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 999px;
  background: rgba(239, 249, 247, .92);
  color: var(--brand);
  border: 1px solid rgba(190, 211, 226, .72);
}
.hero {
  position: relative;
  overflow: hidden;
  border-radius: 34px !important;
  padding: clamp(28px, 4vw, 44px) !important;
  color: white !important;
  background:
    radial-gradient(circle at 86% 22%, rgba(94, 198, 214, .56), transparent 25%),
    radial-gradient(circle at 76% 98%, rgba(35,160,139,.42), transparent 30%),
    linear-gradient(135deg, #073247 0%, #0b5268 54%, #168d99 100%) !important;
  box-shadow: var(--shadow-strong) !important;
  isolation: isolate;
}
.hero::after {
  content: "";
  position: absolute;
  right: -72px;
  bottom: -142px;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  border: 48px solid rgba(255,255,255,.10);
  transform: rotate(14deg);
  z-index: -1;
}
.hero h1 {
  position: relative;
  z-index: 1;
  color: white !important;
  margin: 0 0 10px !important;
  font-family: "Songti SC", "STSong", serif;
  font-weight: 900;
  font-size: clamp(31px, 4vw, 52px) !important;
}
.hero p, .hero span {
  position: relative;
  z-index: 1;
  color: rgba(241, 249, 255, .90) !important;
}
.card, .panel, article, form.card, .module, .risk, .note, .empty, .preview-panel, .quality-gate, .upload, .paste-box, .role-chip-box {
  border: 1px solid rgba(190, 211, 226, .72) !important;
  border-radius: var(--radius) !important;
  background: var(--surface) !important;
  box-shadow: var(--shadow) !important;
  backdrop-filter: blur(10px);
}
.card, .panel, article, form.card, .note, .empty, .preview-panel {
  padding: clamp(18px, 2.4vw, 26px) !important;
}
.card + .card, .panel + .panel, .module-section + .module-section {
  margin-top: 18px !important;
}
.grid, .module-grid, .stats, .risk-grid, .preview-grid {
  gap: 16px !important;
}
.stat {
  border-radius: 22px !important;
  padding: 18px !important;
  background: rgba(255,255,255,.15) !important;
  border: 1px solid rgba(255,255,255,.26) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18);
}
.stat b, .card b, .risk b {
  font-family: "DIN Alternate", "Georgia", "Songti SC", serif;
  color: var(--brand-2);
  line-height: 1.18;
}
.hero .stat b {
  color: white;
  font-size: clamp(28px, 2.8vw, 38px) !important;
}
.hero .stats .stat:last-child b {
  font-size: clamp(18px, 1.7vw, 25px) !important;
}
.hero .stats .stat {
  min-height: 118px;
}
.module-section {
  margin-top: 20px !important;
  padding: 20px !important;
  border-radius: 30px !important;
  background: rgba(255,255,255,.62) !important;
  border: 1px solid rgba(190, 211, 226, .72) !important;
  box-shadow: 0 14px 42px rgba(23,45,66,.08) !important;
}
.section-head {
  align-items: center !important;
}
.section-head h2 {
  color: var(--brand) !important;
  font-size: clamp(22px, 2.1vw, 30px) !important;
}
.section-head p {
  color: var(--muted) !important;
}
.module {
  min-height: 150px !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.module:hover {
  transform: translateY(-3px);
  border-color: rgba(35,160,139,.58) !important;
  box-shadow: 0 24px 62px rgba(23, 45, 66, .15) !important;
}
.module span {
  color: var(--brand) !important;
  font-size: 21px !important;
  font-weight: 950 !important;
}
.module strong {
  color: var(--muted) !important;
  line-height: 1.68 !important;
}
.module.primary {
  background:
    radial-gradient(circle at 90% 0%, rgba(255,255,255,.18), transparent 34%),
    linear-gradient(155deg, #073247 0%, #0b6176 100%) !important;
}
.module.primary span, .module.primary strong {
  color: white !important;
}
.module.primary em {
  background: rgba(255,255,255,.18) !important;
  border-color: rgba(255,255,255,.20) !important;
  color: white !important;
}
.module em, button, .btn, .link-button, .actions button, .actions a, .preview-actions button, .paste-actions button, .mini-filters button, .chip, input[type="submit"] {
  border: 0;
  border-radius: 999px !important;
  background: linear-gradient(135deg, var(--brand), var(--brand-2)) !important;
  color: white !important;
  font-weight: 900 !important;
  box-shadow: 0 12px 26px rgba(15,111,139,.18);
  transition: transform .16s ease, box-shadow .16s ease, opacity .16s ease;
  cursor: pointer;
}
button:hover, .btn:hover, .link-button:hover, .actions button:hover, .actions a:hover, .module em:hover, .mini-filters button:hover, .chip:hover {
  transform: translateY(-1px);
  box-shadow: 0 15px 32px rgba(15,111,139,.24);
}
.btn.secondary, .toolbar button, .toolbar .link-button, .quick-links a, .actions a, .preview-actions button, .paste-actions .secondary, .mini-filters button, .chip {
  background: #eef8f6 !important;
  color: var(--brand) !important;
  border: 1px solid var(--line-strong) !important;
  box-shadow: none;
}
.mini-filters button.active, .chip.active, .stat.active, .risk.active {
  background: linear-gradient(135deg, var(--brand), var(--brand-3)) !important;
  color: white !important;
  border-color: transparent !important;
}
input, select, textarea {
  border: 1px solid var(--line-strong) !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.92) !important;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
  color: var(--ink);
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--brand-3) !important;
  box-shadow: var(--focus);
  background: white !important;
}
textarea {
  line-height: 1.78 !important;
}
.rich-editor {
  border: 1px solid var(--line-strong) !important;
  border-radius: 28px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,253,252,.98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.88), 0 12px 36px rgba(23,45,66,.08) !important;
}
.rich-editor:focus {
  border-color: var(--brand-3) !important;
  box-shadow: var(--focus), inset 0 1px 0 rgba(255,255,255,.88) !important;
}
.rich-editor table:not(.pasted-rich-table) {
  box-shadow: none !important;
}
.rich-editor table:not(.pasted-rich-table) th {
  background: #0b6176 !important;
}
.rich-editor .pasted-table-wrap {
  display: block;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  margin: 12px 0;
  padding: 2px;
  border-radius: 14px;
  background: rgba(255,255,255,.72);
}
.rich-editor table.pasted-rich-table {
  width: 100%;
  max-width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  margin: 0;
  background: transparent;
}
.rich-editor .pasted-table-wrap[data-table-mode="fit"] table.pasted-rich-table {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}
.rich-editor .pasted-table-wrap[data-table-mode="natural"] table.pasted-rich-table {
  width: max-content !important;
  max-width: none !important;
  min-width: max-content !important;
}
.rich-editor table.pasted-rich-table th,
.rich-editor table.pasted-rich-table td {
  min-width: 38px;
  white-space: normal;
  word-break: break-word;
}
.hint, .meta, .module strong, .risk p {
  color: var(--muted) !important;
}
.req, .check, .paste-box {
  border-radius: 20px !important;
  background: rgba(244,251,249,.92) !important;
  border-color: var(--line-strong) !important;
}
.upload, .note, .panel.warn {
  background: rgba(255,250,240,.94) !important;
  border-color: rgba(216,149,54,.42) !important;
}
.quick-links a {
  padding: 13px 14px !important;
}
.quick-links {
  gap: 10px !important;
}
.preview-stat, .quality-gate, .pasted-item {
  border-radius: 18px !important;
  background: var(--surface-soft) !important;
  border-color: var(--line) !important;
}
.quality-gate.green {
  border-color: rgba(31,138,91,.28) !important;
  background: #effaf5 !important;
  color: #176541 !important;
}
.quality-gate.yellow {
  border-color: rgba(216,149,54,.34) !important;
  background: #fff8e9 !important;
  color: #82540f !important;
}
.quality-gate.red {
  border-color: rgba(185,68,56,.28) !important;
  background: #fff3f1 !important;
  color: #93332b !important;
}
table {
  width: 100%;
  border-collapse: separate !important;
  border-spacing: 0 !important;
  overflow: hidden;
  border-radius: 20px !important;
  background: white !important;
  box-shadow: var(--shadow) !important;
}
table:not(.pasted-rich-table) th {
  background: linear-gradient(135deg, #073247, #0b6176) !important;
  color: white !important;
  font-weight: 900 !important;
}
th, td {
  border-bottom: 1px solid #e3edf3 !important;
  padding: 13px 14px !important;
  vertical-align: top;
}
table:not(.pasted-rich-table) tbody tr:hover td {
  background: #f6fbfa !important;
}
tr:last-child td { border-bottom: 0 !important; }
tr.selected td { background: #fff4d7 !important; }
.ok { color: var(--ok) !important; font-weight: 900; }
.warn { color: var(--warn) !important; font-weight: 900; }
.bad { color: var(--bad) !important; font-weight: 900; }
.light {
  border-radius: 999px !important;
  padding: 6px 10px !important;
}
.light.green { background: #eaf8f1 !important; color: var(--ok) !important; }
.light.yellow { background: #fff2d9 !important; color: var(--warn) !important; }
.light.red { background: #fdecea !important; color: var(--bad) !important; }
pre, code {
  border-radius: 14px !important;
  background: #f7fbfa !important;
  border: 1px solid var(--line) !important;
}
article h1 { color: var(--brand) !important; }
article h2 {
  color: var(--brand-2) !important;
  border-top: 1px solid var(--line);
}
article p {
  line-height: 1.86 !important;
}
.message, .toast {
  border-radius: 16px !important;
}
.toast {
  background: #eaf8f1 !important;
  color: var(--ok) !important;
}
.small-btn, button.small-btn {
  min-width: auto !important;
  width: auto !important;
  padding: 8px 14px !important;
  margin: 0 !important;
}
@keyframes liftIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.hero, .card, .panel, article, form.card, .module, .risk, .note {
  animation: liftIn .34s ease both;
}

/* Compact density layer: keep the current visual language, reduce wasted vertical space. */
:root {
  --shadow: 0 12px 32px rgba(23, 45, 66, .09);
  --shadow-strong: 0 18px 48px rgba(23, 45, 66, .15);
  --radius: 18px;
  --radius-sm: 12px;
}
main, .wrap {
  padding: 18px 14px 42px !important;
}
.app-shell {
  width: min(1500px, calc(100% - 24px)) !important;
  padding: 14px 0 44px 258px !important;
  box-sizing: border-box !important;
}
.app-shell > main,
.app-shell > .wrap {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  padding-bottom: 28px !important;
}
.side-nav {
  position: fixed !important;
  top: 12px !important;
  left: max(12px, calc((100vw - 1500px) / 2 + 12px)) !important;
  width: 224px !important;
  max-height: calc(100vh - 24px) !important;
  padding: 10px !important;
  border-radius: 22px !important;
  z-index: 200 !important;
}
.side-brand {
  padding: 12px !important;
  border-radius: 16px !important;
}
.side-brand b {
  font-size: 18px !important;
}
.side-brand span {
  margin-top: 4px !important;
  font-size: 12px !important;
}
.side-nav section {
  margin-top: 10px !important;
  padding-top: 2px !important;
}
.side-nav h3 {
  margin-bottom: 5px !important;
  padding: 0 6px !important;
  font-size: 12px !important;
}
.side-nav h4 {
  margin: 8px 0 4px !important;
  padding: 0 8px !important;
  font-size: 13px !important;
}
.nav-subgroup {
  margin: 6px 0 8px !important;
  padding: 6px !important;
  border-radius: 14px !important;
}
.side-nav a {
  min-height: 34px !important;
  margin: 4px 0 !important;
  padding: 7px 10px 7px 13px !important;
  border-radius: 12px !important;
}
.side-nav a::before {
  margin-right: 7px !important;
}
h1 {
  font-size: clamp(24px, 2.7vw, 34px) !important;
  margin-top: .35em;
  margin-bottom: .45em;
}
h2 {
  margin-top: .45em;
  margin-bottom: .45em;
}
h3 {
  margin-top: .35em;
  margin-bottom: .35em;
}
p, li {
  line-height: 1.58 !important;
}
main > p:first-child {
  gap: 8px !important;
  margin-bottom: 10px !important;
  padding: 7px 9px !important;
}
main > p:first-child a {
  min-height: 30px !important;
  padding: 5px 10px !important;
}
.hero {
  border-radius: 24px !important;
  padding: clamp(20px, 2.8vw, 30px) !important;
}
.hero::after {
  right: -58px !important;
  bottom: -118px !important;
  width: 286px !important;
  height: 286px !important;
  border-width: 36px !important;
}
.hero h1 {
  margin-bottom: 7px !important;
  font-size: clamp(28px, 3vw, 42px) !important;
}
.card, .panel, article, form.card, .note, .empty, .preview-panel {
  padding: clamp(14px, 1.7vw, 20px) !important;
}
.card + .card, .panel + .panel, .module-section + .module-section {
  margin-top: 12px !important;
}
.grid, .module-grid, .stats, .risk-grid, .preview-grid {
  gap: 10px !important;
}
.stat, .preview-stat, .quality-gate, .pasted-item {
  border-radius: 14px !important;
  padding: 10px 12px !important;
}
.hero .stat {
  min-height: 82px !important;
  padding: 12px !important;
}
.hero .stat b {
  font-size: clamp(24px, 2.3vw, 32px) !important;
}
.hero .stats .stat:last-child b {
  font-size: clamp(16px, 1.5vw, 21px) !important;
}
.module-section {
  margin-top: 14px !important;
  padding: 14px !important;
  border-radius: 20px !important;
}
.section-head h2 {
  font-size: clamp(20px, 1.8vw, 26px) !important;
}
.module {
  min-height: 112px !important;
}
.module span {
  font-size: 18px !important;
}
.module strong {
  line-height: 1.48 !important;
}
.quick-links {
  gap: 8px !important;
}
.quick-links a {
  padding: 9px 11px !important;
}
input, select, textarea {
  border-radius: 12px !important;
  padding: 10px 11px !important;
}
textarea {
  line-height: 1.62 !important;
}
.rich-editor {
  border-radius: 18px !important;
  padding: 18px 20px !important;
  min-height: 430px !important;
}
.format-toolbar {
  padding: 7px !important;
  gap: 6px !important;
}
.format-toolbar button,
.table-tools button,
.image-tools button {
  padding: 4px 8px !important;
  min-height: 28px !important;
}
.rich-editor .pasted-table-wrap {
  margin: 8px 0 !important;
  border-radius: 10px !important;
}
.req, .check, .paste-box {
  border-radius: 14px !important;
}
table {
  border-radius: 14px !important;
}
th, td {
  padding: 9px 10px !important;
  line-height: 1.45 !important;
}
.preview-panel {
  top: 12px !important;
}
.preview-box {
  max-height: 300px !important;
  line-height: 1.58 !important;
}
.attachment-item {
  padding: 8px !important;
  gap: 8px !important;
}
.attachment-thumb {
  width: 46px !important;
  height: 46px !important;
}

/* ASMS-inspired operation layer: compact left business tree + dense right workbench. */
body {
  font-size: 15px;
}
.app-shell {
  width: min(1680px, calc(100% - 18px)) !important;
  padding-left: 244px !important;
}
.side-nav {
  left: max(8px, calc((100vw - 1680px) / 2 + 8px)) !important;
  width: 218px !important;
  border-radius: 16px !important;
  padding: 10px !important;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,251,249,.95)) !important;
}
.side-brand {
  border-radius: 14px !important;
  padding: 10px 12px !important;
}
.side-brand b {
  font-size: 17px !important;
}
.side-brand span {
  font-size: 11px !important;
}
.nav-subgroup {
  border-radius: 12px !important;
  padding: 5px !important;
}
.side-nav a {
  min-height: 30px !important;
  padding: 5px 8px 5px 10px !important;
  border-radius: 9px !important;
  font-size: 14px !important;
}
.side-nav h3 {
  font-size: 11px !important;
  margin-bottom: 4px !important;
}
.side-nav h4 {
  font-size: 12px !important;
}
main > p:first-child {
  position: sticky;
  top: 8px;
  z-index: 40;
  min-height: 38px;
  border-radius: 18px !important;
}
.hero {
  border-radius: 20px !important;
  padding: 22px 26px !important;
}
.hero h1 {
  font-size: clamp(27px, 3vw, 42px) !important;
}
.hero .stats {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
}
.hero .stats .stat {
  min-height: 76px !important;
}
.card, .panel, article, form.card, .note, .empty, .preview-panel {
  border-radius: 14px !important;
  padding: 14px 16px !important;
}
.module-section {
  border-radius: 16px !important;
  padding: 14px !important;
}
.module {
  min-height: 92px !important;
  border-radius: 12px !important;
  padding: 12px !important;
}
.module span {
  font-size: 17px !important;
}
button, .btn, .link-button, input[type="submit"] {
  min-height: 34px;
  padding: 7px 13px !important;
}
input, select, textarea {
  min-height: 34px;
  padding: 7px 10px !important;
}
table {
  border-radius: 10px !important;
  font-size: 14px;
}
table:not(.pasted-rich-table) th {
  background: #0b5a72 !important;
}
th, td {
  padding: 7px 9px !important;
}
.rich-editor {
  min-height: 380px !important;
  border-radius: 14px !important;
}
.preview-panel {
  position: sticky;
  top: 54px;
}
@media (max-width: 900px) {
  .pwa-install-button { display: block; bottom: calc(16px + env(safe-area-inset-bottom)); }
  .app-shell {
    display: block;
    width: auto;
    margin: 0;
    padding: 12px 12px 42px !important;
  }
  .side-nav {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    width: auto !important;
    max-height: none;
    margin-bottom: 14px;
    overflow: visible;
    z-index: auto !important;
  }
  .global-account-menu {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    width: fit-content;
    max-width: 100%;
    margin: 0 12px 10px auto;
    z-index: 20 !important;
  }
  .side-nav section {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .side-nav h3 {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    margin: 6px 4px 6px 0;
  }
  .nav-subgroup {
    flex: 0 0 auto;
    min-width: 190px;
    margin: 0;
    padding: 8px;
  }
  .side-nav h4 {
    margin: 2px 0 6px;
    font-size: 13px;
  }
  .side-nav a {
    flex: 0 0 auto;
    margin: 4px 0;
    white-space: nowrap;
    min-height: 36px;
    padding: 8px 10px;
  }
  main, .wrap { padding: 16px 12px 42px !important; }
  .app-shell > main, .app-shell > .wrap { padding: 0 !important; }
  main > p:first-child { border-radius: 18px; }
  .hero { border-radius: 24px !important; }
  .stats, .risk-grid, .preview-grid { grid-template-columns: 1fr 1fr !important; }
  .compose-layout, .layout { grid-template-columns: 1fr !important; }
  .preview-panel { position: static !important; }
  table { display: block; overflow-x: auto; white-space: nowrap; }
  th, td { padding: 10px 9px !important; }
  .module { min-height: auto !important; }
}
@media (max-width: 560px) {
  .stats, .risk-grid, .preview-grid, .grid { grid-template-columns: 1fr !important; }
  .hero h1 { font-size: 30px !important; }
  .card, .panel, article, form.card, .preview-panel { padding: 16px !important; }
}

/* ASMS-compatible final skin: dense business UI, not presentation cards. */
body {
  color: #263746 !important;
  background: #f3f5f7 !important;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif !important;
  font-size: 14px !important;
}
.side-nav {
  background: #ffffff !important;
  border: 1px solid #cfd8e1 !important;
  border-radius: 4px !important;
  box-shadow: 0 1px 4px rgba(33, 56, 77, .12) !important;
}
.side-brand {
  color: white !important;
  background: #176a93 !important;
  border-radius: 3px !important;
}
.side-nav section, .nav-subgroup {
  background: #fff !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.side-nav h3 {
  color: #667789 !important;
  border-bottom: 1px solid #e2e8ee;
  padding-bottom: 5px !important;
}
.side-nav h4 { color: #31576f !important; }
.side-nav a {
  min-height: 29px !important;
  margin: 1px 0 !important;
  padding: 4px 8px 4px 13px !important;
  border-radius: 2px !important;
  font-weight: 600 !important;
}
.side-nav a:hover {
  transform: none !important;
  background: #edf5fa !important;
}
.side-nav a.active {
  color: #fff !important;
  background: #2385b8 !important;
  box-shadow: none !important;
}
main > p:first-child {
  top: 4px !important;
  min-height: 34px !important;
  border-radius: 3px !important;
  background: #fff !important;
  box-shadow: none !important;
}
main > p:first-child a {
  min-height: 26px !important;
  padding: 3px 9px !important;
  border-radius: 2px !important;
  background: #edf5fa !important;
}
.hero {
  min-height: 0 !important;
  border-radius: 4px !important;
  padding: 16px 20px !important;
  background: #176a93 !important;
  box-shadow: none !important;
}
.hero::after { display: none !important; }
.hero h1 {
  margin: 0 0 5px !important;
  font-family: "Microsoft YaHei", "PingFang SC", sans-serif !important;
  font-size: 26px !important;
}
.hero .stats { gap: 8px !important; }
.hero .stat {
  min-height: 54px !important;
  border-radius: 3px !important;
  padding: 8px 10px !important;
}
.hero .stat b { font-size: 24px !important; }
.card, .panel, article, form.card, .module, .risk, .note, .empty, .preview-panel,
.quality-gate, .upload, .paste-box, .role-chip-box, .module-section {
  border: 1px solid #d4dde5 !important;
  border-radius: 4px !important;
  background: #fff !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  animation: none !important;
}
.card, .panel, article, form.card, .note, .empty, .preview-panel {
  padding: 12px 14px !important;
}
.module-section { padding: 12px !important; }
.module {
  min-height: 74px !important;
  border-radius: 3px !important;
  padding: 10px !important;
}
.module:hover { transform: none !important; box-shadow: none !important; }
.module.primary { background: #176a93 !important; }
button, .btn, .link-button, input[type="submit"], .module em,
.actions button, .actions a, .preview-actions button, .paste-actions button,
.mini-filters button, .chip {
  min-height: 30px !important;
  padding: 5px 11px !important;
  border-radius: 3px !important;
  background: #2385b8 !important;
  box-shadow: none !important;
  font-weight: 700 !important;
}
button:hover, .btn:hover, .link-button:hover, .actions a:hover,
.module em:hover, .mini-filters button:hover, .chip:hover {
  transform: none !important;
  background: #176a93 !important;
  box-shadow: none !important;
}
input, select, textarea {
  min-height: 30px !important;
  padding: 5px 8px !important;
  border-radius: 3px !important;
  background: #fff !important;
}
table:not(.pasted-rich-table) {
  border: 1px solid #cfd8e1 !important;
  border-radius: 0 !important;
  border-collapse: collapse !important;
  box-shadow: none !important;
  font-size: 13px !important;
}
table:not(.pasted-rich-table) th {
  position: sticky;
  top: 0;
  z-index: 2;
  color: #233a4b !important;
  background: #e7eef4 !important;
  border: 1px solid #c5d1dc !important;
  padding: 6px 8px !important;
  font-weight: 700 !important;
  white-space: nowrap;
}
table:not(.pasted-rich-table) td {
  border: 1px solid #d8e0e7 !important;
  padding: 6px 8px !important;
  line-height: 1.35 !important;
}
table:not(.pasted-rich-table) tbody tr:nth-child(even) td { background: #f8fafc; }
table:not(.pasted-rich-table) tbody tr:hover td { background: #eaf4fb !important; }
.table-wrap {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  border: 1px solid #d4dde5;
  background: #fff;
}
.table-scroll-top {
  width:100%;
  height:14px;
  margin:2px 0 5px;
  overflow-x:auto;
  overflow-y:hidden;
  border:1px solid #d4dde5;
  background:rgba(231,238,244,.72);
  scrollbar-color:var(--brand-3) transparent;
}
.table-wrap > table:not(.pasted-rich-table) {
  display: table !important;
  width: max-content;
  min-width: 100%;
  max-width: none;
}
.bulk-selected > td { background:#e8f7f3 !important; box-shadow:inset 0 1px 0 rgba(35,160,139,.18), inset 0 -1px 0 rgba(35,160,139,.18); }
form[data-bulk-form] [data-bulk-summary] { min-width:150px; color:var(--brand); font-weight:900; }
form[data-bulk-form] button[disabled] { opacity:.46; cursor:not-allowed; filter:grayscale(.35); }
[data-bulk-select-all] { width:20px; height:20px; vertical-align:middle; accent-color:var(--brand-3); }
.asms-table-toolbar {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 38px;
  padding: 5px 7px;
  border: 1px solid #cfd8e1;
  border-bottom: 0;
  background: #f6f8fa;
}
.asms-table-toolbar input {
  width: min(280px, 48vw);
  min-height: 28px !important;
}
.asms-table-toolbar span {
  margin-right: auto;
  color: #667789;
  font-size: 12px;
}
.asms-table-toolbar button { min-height: 28px !important; padding: 3px 9px !important; }
.rich-editor table.pasted-rich-table {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border-collapse: collapse !important;
}
.rich-editor table.pasted-rich-table th,
.rich-editor table.pasted-rich-table td {
  color: inherit;
}
@media (max-width: 900px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  .app-shell, .app-shell > main, .app-shell > .wrap,
  main, .wrap, section, article, .panel, .card, .module,
  .grid, .stats, .form-grid, form, label { min-width: 0 !important; max-width: 100%; }
  input, select, textarea, button { max-width: 100%; }
  .table-wrap { max-width: calc(100vw - 48px); }
  .table-wrap > table:not(.pasted-rich-table) { white-space: nowrap; }
}
.light { border-radius: 3px !important; padding: 3px 7px !important; }