/* Shared typography and visual rhythm. Loaded after the legacy component styles. */
:root { --ops-font: "Microsoft YaHei", "PingFang SC", "Segoe UI", Arial, sans-serif; }
body { font-family: var(--ops-font); line-height: 1.6; color: #23364d; }
body input, body select, body textarea, body button { font-family: var(--ops-font); }
body input, body select, body textarea { font-weight: 400; line-height: 1.6; letter-spacing: normal; }
body label { font-weight: 600; }
body :is(h1,h2,h3,h4,h5,strong,b) { font-weight: 600; }
body :is(.primary-button,.secondary-button,.nav-item,.tool-subnav-item,.workspace-tab) { font-weight: 600; }
body :is(.view-panel,.input-panel,.result-panel,.tool-launch-card,.template-card) { min-width: 0; }
body :is(.input-panel,.result-panel,.tool-launch-card,.template-card) { box-shadow: 0 2px 12px #183f6807; border-color: #e0e7ef; }
body :is(.policy-notice,.listing-review-notice) { background: #f5f9fc; border-color: #e0e7ef; padding: 14px 16px; line-height: 1.7; }
body :is(.policy-notice,.listing-review-notice) p { margin: 6px 0; }
body :is(.policy-notice,.listing-review-notice) summary { cursor: pointer; font-weight: 500; color: #456785; }
body :is(input,textarea)::placeholder { font-weight: 400; color: #687d92; opacity: 1; }
body :is(button,a,input,textarea,select,summary):focus-visible { outline: 3px solid #1698bc; outline-offset: 3px; }
body .section-heading { flex-wrap: wrap; gap: 8px; }
body .tool-card-copy small { line-height: 1.7; font-weight: 400; }
body textarea { scrollbar-gutter: stable; }
body .admin-grid > section { min-width: 0; }
body .risk-card { min-width: 0; overflow-wrap: anywhere; }
.mobile-navigation-toggle { display: none; }
@media (max-width: 1150px) {
  body :is(.workflow-grid,.admin-grid) { grid-template-columns: minmax(0, 1fr); }
}
.available-update-notice { position: fixed; z-index: 2000; left: 50%; bottom: 24px; transform: translateX(-50%); width: min(700px, calc(100% - 32px)); display: flex; align-items: center; gap: 16px; padding: 14px 18px; border: 1px solid #bed7e7; border-radius: 12px; background: #fff; box-shadow: 0 8px 32px #153b6325; font-size: 14px; }
.available-update-notice button { flex-shrink: 0; padding: 8px 14px; color: #fff; border: 0; border-radius: 8px; background: #087fac; cursor: pointer; }
@media (max-width: 700px) {
  body .risk-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .sidebar { position: relative; height: auto; min-height: 0; overflow: visible; }
  body .mobile-navigation-toggle { display: block; position: absolute; right: 16px; top: 23px; }
  body .sidebar .brand-lockup { padding-right: 118px; }
  body:not(.mobile-navigation-open) .sidebar :is(.primary-nav,.sidebar-footer) { display: none; }
  body.mobile-navigation-open .sidebar .primary-nav { max-height: 65vh; overflow-y: auto; }
  body.mobile-navigation-open #primaryNavigation :is(.nav-item,.tools-nav-group-toggle,.nav-leaf):not([hidden]) { display: flex; }
  body.mobile-navigation-open #primaryNavigation .tools-nav-group:not([hidden]) { display: block; }
  body.mobile-navigation-open .sidebar .sidebar-footer { display: flex; }
  body :is(.listing-copy-shell,.workflow-grid,.form-grid.two) { grid-template-columns: minmax(0, 1fr); }
  body :is(input,select,textarea) { max-width: 100%; font-size: 16px; }
  body :is(.button-row,.section-heading) { flex-wrap: wrap; }
  body :is(.input-panel,.result-panel) { padding: 16px; }
  .available-update-notice { bottom: 10px; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
