@import url("/design-tokens.css");

:root {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
  color: #253246;
  background: #edf3f8;
  --primary: var(--color-blue-600);
  --primary-deep: var(--color-blue-700);
  --accent: #df5d22;
  --surface: var(--color-gray-50);
  --surface-strong: var(--color-white);
  --background: var(--color-gray-100);
  --foreground: var(--color-gray-900);
  --muted: var(--color-gray-600);
  --text-secondary: var(--color-gray-600);
  --heading: var(--color-gray-800);
  --tint-info: var(--color-blue-50);
  --tint-success: var(--color-green-50);
  --tint-warning: var(--color-amber-50);
  --tint-danger: var(--color-red-50);
  --fs-caption: 14px;
  --fs-body: 14px;
  --border: var(--field-border);
  --success: var(--color-green-700);
  --warning: var(--color-amber-700);
  --danger: var(--color-red-700);
  --violet: #7564a7;
  --shadow-soft: 10px 10px 25px rgba(114, 136, 158, .13), -10px -10px 24px rgba(255, 255, 255, .78);
  --shadow-card: 0 10px 32px rgba(72, 95, 119, .08), inset 0 1px 0 rgba(255,255,255,.9);
  --shadow-raised: 0 15px 35px rgba(72, 95, 119, .14), inset 0 1px 0 #fff;
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 26px;
  --transition: 240ms cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--background); }
body.modal-active { overflow: hidden; }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
[v-cloak] { display: none; }
[hidden] { display: none !important; }

.skip-link { position: fixed; left: 16px; top: -60px; z-index: 100; padding: 10px 14px; border-radius: 10px; color: white; background: var(--primary-deep); transition: top var(--transition); }
.skip-link:focus { top: 16px; }
:focus-visible { outline: 3px solid rgba(73, 105, 135, .36); outline-offset: 3px; }

.app-shell { min-height: 100vh; }
.sidebar {
  position: fixed; inset: 0 auto 0 0; width: 256px; z-index: 30; display: flex; flex-direction: column;
  padding: 24px 18px; color: #415269; background: rgba(248, 251, 253, .92);
  border-right: 1px solid rgba(255,255,255,.9); box-shadow: 8px 0 30px rgba(93, 116, 139, .07);
  backdrop-filter: blur(20px);
}
.brand { display: flex; align-items: center; gap: 11px; padding: 0 7px 24px; }
.brand-wordmark { display: flex; flex: 1 1 0; min-width: 0; flex-direction: column; overflow: hidden; }
.brand strong { display: block; overflow: hidden; color: #243748; font-family: "Microsoft YaHei UI", "PingFang SC", sans-serif; font-size: 17px; font-weight: 800; letter-spacing: .025em; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.brand small { display: block; max-width: 100%; margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .07em; line-height: 1.15; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.brand-mark { display: grid; flex: 0 0 42px; place-items: center; width: 42px; height: 42px; filter: drop-shadow(0 7px 8px rgba(52, 78, 91, .14)); }
.brand-mark img { display: block; width: 42px; height: 42px; object-fit: contain; }
.workspace-chip { display: flex; align-items: center; gap: 10px; min-height: 64px; padding: 10px; border: 1px solid rgba(255,255,255,.9); border-radius: var(--radius-md); background: rgba(237, 243, 248, .74); box-shadow: inset 3px 3px 8px rgba(104,125,146,.08), inset -3px -3px 8px #fff; }
.workspace-avatar { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 13px; color: white; background: linear-gradient(145deg,#e77d4b,#c84e19); box-shadow: 4px 5px 12px rgba(204,82,29,.2); }
.workspace-chip > span:nth-child(2) { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.workspace-chip small, .profile small { color: var(--muted); font-size: 12px; }
.workspace-chip strong { color: #3a4a5e; font-size: 13px; }
.chevron { color: var(--muted); }
.sidebar nav { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; gap: 5px; margin: 22px -6px 0 0; padding-right: 6px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(111,133,153,.28) transparent; }
.sidebar nav p { margin: 0 12px 8px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.sidebar nav button { display: flex; align-items: center; gap: 12px; min-height: 46px; padding: 0 13px; border: 0; border-radius: 15px; color: var(--muted); background: transparent; text-align: left; transition: color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition); }
.sidebar nav button:hover { color: #365673; background: rgba(255,255,255,.7); transform: translateX(2px); }
.sidebar nav button.active { color: var(--primary-deep); background: #edf3f8; box-shadow: 5px 6px 14px rgba(101,125,147,.13), -4px -4px 11px rgba(255,255,255,.86); }
.sidebar nav button b { margin-left: auto; display: grid; place-items: center; min-width: 22px; height: 22px; padding: 0 6px; color: #a84b21; background: #fbe5db; border-radius: 8px; font-size: 12px; }
.sidebar-navigation::-webkit-scrollbar { width: 5px; }
.sidebar-navigation::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(111,133,153,.25); }
.sidebar-nav-group { display: grid; gap: 2px; padding: 0 0 8px; }
.sidebar-nav-group + .sidebar-nav-group { padding-top: 6px; border-top: 1px solid rgba(132,153,174,.1); }
.sidebar-nav-group h2 { display: flex; align-items: center; gap: 7px; margin: 0 12px 3px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .08em; line-height: 1.5; }
.sidebar-nav-group h2 span { width: 5px; height: 5px; border-radius: 50%; background: #bdc8d2; box-shadow: 0 0 0 3px rgba(189,200,210,.15); }
.sidebar-nav-group.active h2 { color: #55758f; }
.sidebar-nav-group.active h2 span { background: #5f809b; box-shadow: 0 0 0 3px rgba(95,128,155,.14); }
.sidebar-nav-group button { margin-left: 9px; min-height: 41px; padding-left: 17px; border-radius: 13px; font-size: 12px; }
.sidebar-nav-group button .nav-icon svg { width: 17px; height: 17px; }
.nav-icon { display: inline-flex; flex: 0 0 auto; }
.nav-icon svg { width: 19px; height: 19px; }
.sidebar-help { position: relative; flex: 0 0 auto; margin-top: 14px; padding: 17px 15px 16px 45px; border-radius: var(--radius-md); background: linear-gradient(145deg,#eff7f3,#e4f0ea); border: 1px solid rgba(255,255,255,.8); box-shadow: var(--shadow-soft); }
.sidebar-help .nav-icon { position: absolute; left: 15px; top: 18px; color: var(--success); }
.sidebar-help strong, .sidebar-help small { display: block; }
.sidebar-help strong { color: #376553; font-size: 12px; }
.sidebar-help small { margin-top: 3px; color: #718b80; font-size: 12px; }
.profile { display: flex; align-items: center; gap: 10px; padding: 20px 8px 0; margin-top: 20px; border-top: 1px solid var(--border); }
.profile > span:nth-child(2) { display: flex; flex: 1; flex-direction: column; }
.profile strong { font-size: 12px; }
.avatar { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 13px; color: #506378; background: #edf3f8; box-shadow: 4px 5px 10px rgba(101,125,147,.14), -3px -3px 8px #fff; font-weight: 800; }
.profile-more { color: #95a2b0; letter-spacing: 1px; }

main { min-height: 100vh; margin-left: 256px; }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: 0 36px; border-bottom: 1px solid rgba(255,255,255,.65); background: rgba(237,243,248,.82); backdrop-filter: blur(18px); }
.global-search { display: flex; align-items: center; gap: 10px; width: min(420px, 42vw); height: 43px; padding: 0 13px; border: 1px solid rgba(255,255,255,.82); border-radius: 15px; color: #7c8b9c; background: #edf3f8; box-shadow: inset 3px 3px 8px rgba(93,114,135,.08), inset -4px -4px 9px rgba(255,255,255,.84); transition: box-shadow var(--transition); }
.global-search:focus-within { box-shadow: inset 2px 2px 6px rgba(93,114,135,.08), inset -3px -3px 8px #fff, 0 0 0 3px rgba(73,105,135,.12); }
.global-search svg { width: 18px; }
.global-search input { flex: 1; min-width: 0; border: 0; outline: 0; color: var(--foreground); background: transparent; font-size: 13px; }
.global-search kbd { padding: 3px 6px; border: 1px solid var(--border); border-radius: 6px; color: var(--muted); background: rgba(255,255,255,.65); font-size: 12px; }
.topbar-actions { display: flex; align-items: center; gap: 16px; }
.release-notes-trigger { display: inline-flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 10px; border: 1px solid rgba(83,119,148,.18); border-radius: 10px; color: #4f7592; background: rgba(255,255,255,.58); font-size: 12px; font-weight: 800; cursor: pointer; transition: transform var(--transition), background var(--transition), box-shadow var(--transition); }
.release-notes-trigger:hover { background: #f7fbfd; box-shadow: 0 4px 11px rgba(83,119,148,.12); transform: translateY(-1px); }
.release-notes-trigger:focus-visible { outline: 3px solid rgba(73,105,135,.28); outline-offset: 2px; }
.release-notes-dot { width: 7px; height: 7px; border-radius: 50%; background: #4b8d72; box-shadow: 0 0 0 4px rgba(75,141,114,.12); }
.release-notes-new { padding: 2px 4px; border-radius: 5px; color: var(--warning); background: #fff0e3; font-size: 10px; letter-spacing: .04em; }
.release-notes-version { color: var(--muted); font-size: 11px; font-weight: 700; }
.icon-button { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 0; border-radius: 14px; color: var(--muted); background: #edf3f8; box-shadow: 4px 5px 12px rgba(101,125,147,.12), -4px -4px 10px rgba(255,255,255,.82); transition: transform var(--transition), color var(--transition), box-shadow var(--transition); }
.icon-button:hover { color: var(--primary-deep); transform: translateY(-2px); box-shadow: 6px 8px 16px rgba(101,125,147,.16), -4px -4px 10px #fff; }
.icon-button:active { transform: translateY(0) scale(.97); box-shadow: inset 2px 2px 5px rgba(101,125,147,.13); }
.notification { position: relative; }
.notification.has-unread::after { content:""; position: absolute; top: 8px; right: 8px; width: 7px; height: 7px; border: 2px solid var(--background); border-radius: 50%; background: #d8684f; }
.notification > span { display: grid; place-items: center; }
.notification > b { position: absolute; top: -5px; right: -7px; min-width: 18px; height: 18px; padding: 0 5px; border: 2px solid var(--background); border-radius: 10px; color: #fff; background: #b9503f; font-size: 9px; line-height: 14px; text-align: center; }
.today { color: var(--muted); font-size: 12px; }
.mobile-menu { display: none; }

.content { width: 100%; margin: 0; padding: 36px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.page-heading h1 { margin: 5px 0 8px; color: var(--heading); font-family: "Varela Round","PingFang SC",sans-serif; font-size: clamp(27px, 3vw, 36px); font-weight: 700; letter-spacing: -.025em; }
.page-heading > div > p:last-child { margin: 0; color: var(--muted); font-size: 14px; }
.eyebrow { display: flex; align-items: center; gap: 7px; margin: 0; color: #647991; font-size: 12px; font-weight: 800; letter-spacing: .08em; }
.eyebrow span { width: 20px; height: 5px; border-radius: 10px; background: var(--accent); }
.primary, .secondary, .success, .ghost { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 43px; padding: 0 18px; border-radius: 14px; font-weight: 700; font-size: 13px; transition: transform var(--transition), box-shadow var(--transition), background var(--transition), color var(--transition); }
.primary { border: 1px solid rgba(255,255,255,.2); color: white; background: linear-gradient(145deg, var(--button-gradient-start), var(--button-gradient-end)); box-shadow: 6px 8px 18px rgba(51,82,109,.22), inset 1px 1px 1px rgba(255,255,255,.34); }
.primary:hover { transform: translateY(-2px); box-shadow: 8px 11px 22px rgba(51,82,109,.25), inset 1px 1px 1px rgba(255,255,255,.34); }
.primary:active { transform: translateY(0) scale(.98); }
.primary svg { width: 17px; height: 17px; }
.secondary { border: 1px solid rgba(255,255,255,.86); color: var(--text-secondary); background: var(--background); box-shadow: 4px 5px 11px rgba(101,125,147,.12), -4px -4px 9px #fff; }
.secondary:hover { color: var(--primary-deep); transform: translateY(-1px); }
.success { border: 1px solid rgba(255,255,255,.24); color: #fff; background: linear-gradient(145deg,#339273,#24785e); box-shadow: 6px 8px 18px rgba(36,120,94,.22), inset 1px 1px 1px rgba(255,255,255,.3); }
.success:hover { transform: translateY(-2px); box-shadow: 8px 11px 22px rgba(36,120,94,.27), inset 1px 1px 1px rgba(255,255,255,.3); }
.success:active { transform: translateY(0) scale(.98); }
.ghost { border: 0; color: #738398; background: transparent; }
.ghost:hover { color: var(--primary-deep); background: rgba(255,255,255,.62); }

.stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; margin-bottom: 22px; }
.stats article { position: relative; min-height: 146px; padding: 21px 22px; overflow: hidden; border: 1px solid rgba(255,255,255,.84); border-radius: var(--radius-lg); background: rgba(248,251,253,.78); box-shadow: var(--shadow-card); transition: transform var(--transition), box-shadow var(--transition); }
.stats article:hover { transform: translateY(-4px); box-shadow: var(--shadow-raised); }
.stat-top { display: flex; align-items: center; justify-content: space-between; color: #68798e; font-size: 12px; font-weight: 700; }
.stat-top i { width: 9px; height: 9px; border: 3px solid currentColor; border-radius: 50%; opacity: .7; }
.stats article > div:nth-child(2) { margin-top: 13px; }
.stats article strong { color: #2b3c50; font-size: 31px; line-height: 1; font-variant-numeric: tabular-nums; }
.stats article em { margin-left: 5px; color: #76879a; font-size: 12px; font-style: normal; }
.stats article > small { display: block; margin-top: 14px; color: #687b91; font-size: 13px; line-height: 1.4; }
.stats article > small b { margin-right: 5px; font-size: 12px; }
.tone-blue { color: #54799a; }.tone-green { color: var(--success); }.tone-amber { color: var(--warning); }.tone-violet { color: var(--violet); }
.organic-orb { position: absolute; width: 95px; height: 80px; right: -34px; bottom: -37px; border-radius: 61% 39% 48% 52% / 46% 57% 43% 54%; background: currentColor; opacity: .07; transform: rotate(-16deg); }

.panel { overflow: hidden; border: 1px solid rgba(255,255,255,.84); border-radius: var(--radius-lg); background: rgba(248,251,253,.78); box-shadow: var(--shadow-card); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; padding: 23px 24px 17px; }
.panel-heading h2 { margin: 0 0 4px; color: #2e4053; font-family: "Varela Round","PingFang SC",sans-serif; font-size: 18px; }
.panel-heading p { margin: 0; color: #8391a1; font-size: 12px; }
.view-switch button { display: grid; place-items: center; width: 37px; height: 37px; border: 0; border-radius: 12px; color: #56728d; background: #edf3f8; box-shadow: inset 2px 2px 5px rgba(98,120,142,.1), inset -3px -3px 7px #fff; }
.view-switch svg { width: 17px; height: 17px; }
.filters { display: flex; align-items: center; gap: 11px; padding: 14px 24px; border-block: 1px solid rgba(132,153,174,.11); background: rgba(237,243,248,.56); }
.search-field { display: flex; align-items: center; gap: 9px; width: min(340px, 38vw); min-height: 42px; padding: 0 13px; border: 1px solid rgba(255,255,255,.85); border-radius: 13px; background: var(--surface); box-shadow: inset 2px 2px 5px rgba(93,114,135,.06); }
.search-field svg { width: 17px; color: #8493a3; }
.search-field input { flex: 1; min-width: 0; border: 0; outline: 0; color: var(--foreground); background: transparent; font-size: 12px; }
.filters select, .form-grid input, .form-grid select { min-height: 42px; padding: 0 12px; border: 1px solid rgba(132,153,174,.2); border-radius: 13px; outline: 0; color: #4e6074; background: rgba(255,255,255,.76); transition: border var(--transition), box-shadow var(--transition), background var(--transition); }
.filters select { width: 132px; font-size: 12px; }
.filters select:focus, .form-grid input:focus, .form-grid select:focus { border-color: rgba(73,105,135,.52); background: white; box-shadow: 0 0 0 3px rgba(73,105,135,.11); }
.result-count { margin-left: auto; color: #8693a2; font-size: 12px; }
.project-list { padding: 8px 14px 14px; }
.project-card { display: grid; grid-template-columns: minmax(230px,1.3fr) minmax(300px,1.5fr) minmax(125px,.65fr) auto auto; align-items: center; gap: 18px; min-height: 108px; margin-top: 8px; padding: 18px 16px; border: 1px solid transparent; border-radius: var(--radius-md); cursor: pointer; transition: transform var(--transition), background var(--transition), border-color var(--transition), box-shadow var(--transition); }
.project-card:hover, .project-card:focus-within { z-index: 1; border-color: rgba(255,255,255,.9); background: rgba(255,255,255,.7); box-shadow: 6px 8px 18px rgba(92,115,138,.1), -4px -4px 12px rgba(255,255,255,.78); transform: translateY(-2px); }
.project-identity { display: flex; align-items: center; gap: 13px; min-width: 0; }
.project-icon { display: grid; flex: 0 0 auto; place-items: center; width: 45px; height: 45px; border-radius: 15px 15px 18px 13px; color: #527491; background: #e7eff5; box-shadow: inset 2px 2px 4px rgba(96,120,143,.09), inset -2px -2px 5px white; }
.project-icon svg { width: 20px; }
.project-identity div { min-width: 0; }
.project-identity h3 { overflow: hidden; margin: 0 0 6px; color: var(--heading); font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.project-identity p { overflow: hidden; margin: 0; color: #76879a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.project-meta { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; }
.project-meta span, .progress-block { display: flex; flex-direction: column; min-width: 0; }
.project-meta small, .progress-block small { margin-bottom: 6px; color: #7f90a3; font-size: 12px; line-height: 1.35; }
.project-meta strong { overflow: hidden; color: #4c6077; font-size: 14px; font-weight: 700; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.progress-block > span { display: flex; flex-direction: row; justify-content: space-between; }
.progress-block b { color: #536a82; font-size: 13px; }
.progress { height: 6px; overflow: hidden; border-radius: 10px; background: #e3eaf0; box-shadow: inset 1px 1px 2px rgba(80,101,121,.1); }
.progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#6b8eaa,#466e91); }
.status-pill { display: inline-flex; align-items: center; gap: 6px; justify-content: center; min-width: 78px; min-height: 32px; padding: 0 11px; border-radius: 11px; font-size: 12px; font-weight: 800; }
.status-pill i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-pill.green { color: var(--success); background: var(--tint-success); }.status-pill.amber { color: var(--warning); background: var(--tint-warning); }.status-pill.red { color: var(--danger); background: #f8e4e6; }.status-pill.slate { color: var(--muted); background: #e8edf2; }
.detail-link { display: inline-flex; align-items: center; gap: 3px; min-height: 40px; padding: 0 11px; border: 0; border-radius: 11px; color: #567492; background: transparent; font-size: 12px; font-weight: 800; transition: background var(--transition), transform var(--transition); }
.detail-link:hover { background: #e9f0f5; transform: translateX(2px); }
.detail-link svg { width: 14px; height: 14px; }
.state-message { display: grid; justify-items: center; padding: 62px 20px; color: #7c8b9d; text-align: center; }
.state-message strong { margin-top: 12px; color: #4b5d72; }
.state-message p { margin: 5px 0 16px; font-size: 12px; }
.empty-orb { display: grid; place-items: center; width: 54px; height: 54px; border-radius: 45% 55% 62% 38% / 48% 38% 62% 52%; color: #738da6; background: #e7eef4; box-shadow: var(--shadow-soft); }
.loading-grid { padding: 18px 24px; }
.skeleton { height: 72px; margin: 9px 0; border-radius: 17px; background: linear-gradient(105deg,#e9eff4 25%,#f8fbfd 40%,#e9eff4 60%); background-size: 250% 100%; animation: shimmer 1.4s infinite; }
@keyframes shimmer { to { background-position-x: -250%; } }

.modal-backdrop { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 22px; background: rgba(48,64,80,.38); backdrop-filter: blur(8px); }
.modal { width: min(720px, 100%); max-height: calc(100vh - 44px); overflow: auto; border: 1px solid rgba(255,255,255,.88); border-radius: 28px; background: #f3f7fa; box-shadow: 0 32px 90px rgba(34,50,66,.28), inset 0 1px 0 #fff; }
.modal-heading { display: flex; align-items: center; justify-content: space-between; padding: 24px 26px 19px; border-bottom: 1px solid rgba(132,153,174,.13); }
.modal-heading > div { display: flex; align-items: center; gap: 13px; }
.modal-symbol { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 15px; color: #527491; background: #e5edf4; box-shadow: var(--shadow-soft); }
.modal-heading h2 { margin: 0 0 4px; color: var(--heading); font-size: 19px; }
.modal-heading p { margin: 0; color: var(--muted); font-size: 12px; }
.modal form { padding: 23px 26px 25px; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid label { display: flex; flex-direction: column; gap: 7px; color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.form-grid label > span b { color: var(--danger); }
.form-grid .wide { grid-column: 1 / -1; }
.form-grid input, .form-grid select { width: 100%; }
.form-grid input::placeholder { color: #a0adba; }
.form-error { margin: 14px 0 0; padding: 10px 12px; border-radius: 11px; color: #9e3941; background: #f8e5e7; font-size: 12px; }
.modal-actions { display: flex; justify-content: flex-end; gap: 11px; margin-top: 22px; }
.spinner { width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.4); border-top-color: white; border-radius: 50%; animation: spin .7s linear infinite; }
.spinner.dark { border-color: rgba(73,105,135,.25); border-top-color: var(--primary); }
@keyframes spin { to { transform: rotate(360deg); } }
.fade-enter-active, .fade-leave-active { transition: opacity 200ms ease; }
.fade-enter-active .modal, .fade-leave-active .modal { transition: transform var(--transition), opacity var(--transition); }
.fade-enter-from, .fade-leave-to { opacity: 0; }
.fade-enter-from .modal, .fade-leave-to .modal { opacity: 0; transform: translateY(14px) scale(.98); }
.toast { position: fixed; right: 28px; top: 28px; z-index: 80; display: flex; align-items: center; gap: 9px; padding: 12px 17px; border: 1px solid rgba(255,255,255,.5); border-radius: 14px; color: white; background: #3f6c5a; box-shadow: 0 14px 35px rgba(39,76,61,.25); font-size: 12px; }
.toast span { display: grid; place-items: center; width: 19px; height: 19px; border-radius: 50%; color: #3f6c5a; background: white; font-weight: 900; }
.toast-enter-active, .toast-leave-active { transition: opacity var(--transition), transform var(--transition); }
.toast-enter-from, .toast-leave-to { opacity: 0; transform: translateY(-10px); }
.upload-telemetry { position: fixed; right: 28px; bottom: 28px; z-index: 86; width: min(390px,calc(100vw - 40px)); padding: 16px 17px 14px; border: 1px solid rgba(118,145,168,.24); border-radius: 18px; color: #445c72; background: rgba(247,251,254,.96); box-shadow: 0 18px 48px rgba(49,72,94,.2), inset 0 1px rgba(255,255,255,.8); backdrop-filter: blur(18px); }
.upload-telemetry-heading { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.upload-telemetry-heading > span:nth-child(2) { min-width: 0; }
.upload-telemetry-heading strong, .upload-telemetry-heading small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.upload-telemetry-heading strong { color: #38546c; font-size: 12px; }
.upload-telemetry-heading small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.upload-telemetry-heading b { padding: 4px 7px; border-radius: 8px; color: #316d8c; background: #e4f2f8; font-size: 11px; }
.upload-telemetry-icon { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; color: #fff; background: linear-gradient(145deg,#5a8faa,#3f708c); font-size: 18px; font-weight: 900; box-shadow: 0 7px 15px rgba(63,112,140,.22); }
.upload-telemetry-progress { height: 8px; margin: 13px 0 9px; overflow: hidden; border-radius: 99px; background: #dce7ee; }
.upload-telemetry-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#4d819e,#6fa8bb); box-shadow: 0 0 12px rgba(82,139,165,.3); transition: width .18s linear; }
.upload-telemetry-metrics { display: grid; grid-template-columns: auto 1fr auto; align-items: baseline; gap: 10px; color: var(--muted); font-size: 11px; }
.upload-telemetry-metrics strong { color: #395d76; font-size: 15px; }
.upload-telemetry-metrics span:last-child { text-align: right; }
.upload-telemetry p { margin: 6px 0 0; color: var(--muted); font-size: 11px; text-align: right; }
.upload-telemetry.stage-processing .upload-telemetry-icon { animation: upload-processing-pulse 1.25s ease-in-out infinite; }
.upload-telemetry.stage-completed .upload-telemetry-icon, .upload-telemetry.stage-completed .upload-telemetry-progress i { background: #4f8c71; }
.upload-telemetry.stage-failed .upload-telemetry-icon, .upload-telemetry.stage-failed .upload-telemetry-progress i { background: #b7645d; }
.upload-telemetry-enter-active, .upload-telemetry-leave-active { transition: opacity .2s ease, transform .2s ease; }
.upload-telemetry-enter-from, .upload-telemetry-leave-to { opacity: 0; transform: translateY(12px) scale(.98); }
@keyframes upload-processing-pulse { 50% { transform: scale(.92); box-shadow: 0 3px 8px rgba(63,112,140,.18); } }
.mobile-scrim { display: none; }

.detail-breadcrumb { display: flex; align-items: center; gap: 9px; margin-bottom: 17px; color: #8594a5; font-size: 12px; }
.detail-breadcrumb button { padding: 5px 0; border: 0; color: #5d7690; background: transparent; font-weight: 700; }
.detail-breadcrumb button:hover { color: var(--primary-deep); }
.detail-breadcrumb .back-nav { display: inline-flex; align-items: center; gap: 7px; min-height: 32px; padding: 0 11px 0 8px; border: 1px solid rgba(255,255,255,.86); border-radius: 11px; background: #edf3f8; box-shadow: 3px 4px 9px rgba(101,125,147,.1), -3px -3px 8px #fff; transition: transform var(--transition), color var(--transition), box-shadow var(--transition); }
.detail-breadcrumb .back-nav span:first-child { font-size: 17px; line-height: 1; }
.detail-breadcrumb .back-nav:hover { transform: translateX(-2px); box-shadow: 2px 3px 7px rgba(101,125,147,.13), -3px -3px 8px #fff; }
.detail-breadcrumb strong { overflow: hidden; max-width: 50vw; color: #64758a; text-overflow: ellipsis; white-space: nowrap; }
.detail-hero { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 174px; padding: 30px 32px; overflow: hidden; border: 1px solid rgba(255,255,255,.86); border-radius: 30px; background: linear-gradient(135deg,rgba(250,252,254,.94),rgba(232,240,247,.88)); box-shadow: var(--shadow-card); }
.detail-title { position: relative; z-index: 1; display: flex; align-items: center; gap: 17px; }
.detail-project-icon { display: grid; place-items: center; width: 66px; height: 66px; border-radius: 22px 22px 28px 18px; color: #4f718f; background: #e2ebf2; box-shadow: 8px 10px 20px rgba(92,115,138,.14), -6px -6px 16px rgba(255,255,255,.86); }
.detail-project-icon svg { width: 28px; height: 28px; }
.detail-title h1 { margin: 9px 0 6px; color: #2a3d52; font-family: "Varela Round","PingFang SC",sans-serif; font-size: clamp(25px,3vw,34px); }
.detail-title p { margin: 0; color: #718297; font-size: 13px; }
.detail-title .status-pill { min-height: 27px; font-size: 12px; }
.detail-hero > .primary { position: relative; z-index: 1; flex: 0 0 auto; }
.detail-hero-actions { position: relative; z-index: 1; display: flex; align-items: center; gap: 9px; }
.danger-soft { display: inline-flex; align-items: center; justify-content: center; min-height: 41px; padding: 0 14px; border: 1px solid rgba(188,62,71,.15); border-radius: 13px; color: #a33e47; background: #f7e6e8; font-size: 12px; font-weight: 700; transition: transform var(--transition), background var(--transition); }
.danger-soft:hover { background: #f2dadd; transform: translateY(-1px); }
.verification-pass-button { border-color: rgba(255,255,255,.28); background: linear-gradient(145deg,#4f9b79,#2e765c); box-shadow: 6px 8px 18px rgba(46,118,92,.22), inset 1px 1px 1px rgba(255,255,255,.34); }
.verification-pass-button:hover { box-shadow: 8px 11px 22px rgba(46,118,92,.27), inset 1px 1px 1px rgba(255,255,255,.34); }
.detail-orb { position: absolute; width: 270px; height: 230px; right: -70px; bottom: -150px; border-radius: 61% 39% 48% 52% / 46% 57% 43% 54%; background: #6e8da7; opacity: .09; transform: rotate(-18deg); }
.detail-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 15px; margin: 18px 0; }
.detail-stats article { display: flex; flex-direction: column; min-height: 118px; padding: 20px; border: 1px solid rgba(255,255,255,.82); border-radius: 21px; background: rgba(248,251,253,.78); box-shadow: var(--shadow-card); }
.detail-stats small { color: #7f90a3; font-size: 12px; }
.detail-stats strong { margin: 10px 0 3px; overflow: hidden; color: #3c5066; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
.detail-stats strong em { font-size: 12px; font-style: normal; }
.detail-stats article > span { color: #8997a7; font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 18px; }
.detail-panel { min-width: 0; }
.company-list { padding: 7px 14px 14px; }
.company-list article { display: grid; grid-template-columns: auto minmax(180px,1fr) minmax(100px,.45fr) minmax(90px,.35fr) auto; align-items: center; gap: 14px; min-height: 78px; padding: 12px 10px; border-radius: 17px; transition: background var(--transition), box-shadow var(--transition), transform var(--transition); }
.company-list article:hover { background: rgba(255,255,255,.65); box-shadow: 5px 7px 16px rgba(92,115,138,.09); transform: translateY(-2px); }
.company-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 14px; color: #567692; background: #e6eef4; }
.company-icon svg { width: 19px; }
.company-list article > div { display: flex; flex-direction: column; min-width: 0; }
.company-list article strong { overflow: hidden; color: #3f5267; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.company-list article small { margin-top: 3px; color: #8997a7; font-size: 12px; }
.company-list article > span:not(.company-icon) { display: flex; flex-direction: column; }
.company-list article b { margin-top: 3px; color: #54687e; font-size: 12px; }
.company-list article button { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 11px; color: #66809a; background: transparent; }
.company-list article button:hover { background: #e8eff4; }
.company-list article button svg { width: 16px; }
.state-message.compact { padding: 36px 20px 45px; }
.safety-summary { padding-bottom: 24px; text-align: center; }
.safety-summary .panel-heading { text-align: left; }
.health-ring { display: grid; place-items: center; width: 116px; height: 116px; margin: 10px auto 18px; border-radius: 50%; background: conic-gradient(#587b98 0 68%,#dfe7ed 68%); box-shadow: 7px 9px 19px rgba(92,115,138,.13), -6px -6px 15px rgba(255,255,255,.86); }
.health-ring::before { content:""; grid-area: 1/1; width: 88px; height: 88px; border-radius: 50%; background: #f3f7fa; box-shadow: inset 2px 2px 6px rgba(92,115,138,.1); }
.health-ring span { z-index: 1; grid-area: 1/1; color: #3f566c; }
.health-ring strong { font-size: 27px; }
.health-ring small { font-size: 12px; }
.safety-summary h3 { margin: 0 0 7px; color: #42576d; font-size: 15px; }
.safety-summary > p { margin: 0 auto 19px; max-width: 220px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.workspace { margin-top: 18px; }
.workspace-navigation { display: grid; gap: 8px; margin-bottom: 13px; }
.workspace-tabs { display: flex; gap: 7px; padding: 6px; overflow-x: auto; border: 1px solid rgba(255,255,255,.75); border-radius: 17px; background: rgba(229,237,244,.7); box-shadow: inset 2px 2px 6px rgba(93,114,135,.07), inset -3px -3px 8px rgba(255,255,255,.8); }
.workspace-tabs button { flex: 0 0 auto; min-height: 41px; padding: 0 16px; border: 0; border-radius: 12px; color: #687a8f; background: transparent; font-size: 12px; font-weight: 700; transition: color var(--transition), background var(--transition), box-shadow var(--transition); }
.workspace-tabs button:hover { color: var(--primary-deep); background: rgba(255,255,255,.48); }
.workspace-tabs button.active { color: var(--primary-deep); background: #f4f8fb; box-shadow: 4px 5px 12px rgba(101,125,147,.12), -3px -3px 8px #fff; }
.workspace-tabs button:focus-visible { outline: 2px solid rgba(54,93,126,.58); outline-offset: 2px; }
.workspace-tabs button b { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 5px; padding: 0 5px; border-radius: 7px; color: #6d7f91; background: #e5ecf2; font-size: 12px; }
.workspace-primary-tabs { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(190px,1fr); gap: 8px; overflow: visible; padding: 7px; background: rgba(222,233,241,.78); }
.workspace-primary-tabs button { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 56px; padding: 7px 13px; text-align: left; }
.workspace-primary-tab-icon { display: grid; place-items: center; width: 31px; height: 31px; border-radius: 10px; color: #68829a; background: rgba(245,249,251,.72); box-shadow: inset 1px 1px 2px rgba(255,255,255,.85); }
.workspace-primary-tab-icon svg { width: 16px; }
.workspace-primary-copy { display: grid; gap: 2px; min-width: 0; }
.workspace-primary-copy strong { color: inherit; font-size: 13px; }
.workspace-primary-copy small { overflow: hidden; color: var(--muted); font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.workspace-primary-tabs button.active .workspace-primary-tab-icon { color: #3f6d91; background: #e4eef5; }
.workspace-primary-tabs button.active .workspace-primary-copy small { color: var(--text-secondary); }
.workspace-subtabs { align-items: center; padding: 5px 6px; border-radius: 15px; background: rgba(237,243,247,.72); }
.workspace-subtabs-label { flex: 0 0 auto; padding: 0 10px 0 8px; color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .08em; white-space: nowrap; }
.workspace-subtabs button { min-height: 38px; padding-inline: 14px; }
.workspace-panel { min-height: 330px; overflow: visible; }
.workspace-toolbar-heading, .members-roster-heading { position: sticky; top: 76px; z-index: 19; border-bottom: 1px solid rgba(132,153,174,.16); background: rgba(248,251,253,.96); box-shadow: 0 8px 18px rgba(76,102,124,.08); backdrop-filter: blur(15px); }
.members-roster-heading { align-items: flex-start; gap: 14px; flex-direction: column; }
.members-roster-heading .heading-actions { width: 100%; flex-wrap: wrap; }
.workspace-filters.member-workspace-filters { flex-wrap: wrap; }
.member-workspace-filters .workspace-search { flex: 1 1 300px; }
.workspace-filters { display: flex; align-items: center; gap: 10px; width: calc(100% - 48px); margin: 16px 24px 0; flex-wrap: nowrap; }
.workspace-search { display: flex; flex: 1 1 390px; align-items: center; gap: 9px; width: min(390px,100%); min-height: 41px; margin: 0; padding: 0 12px; border: 1px solid rgba(132,153,174,.18); border-radius: 13px; color: #8091a3; background: rgba(237,243,248,.72); box-shadow: inset 2px 2px 5px rgba(93,114,135,.06); }
.workspace-search svg { width: 17px; }
.workspace-search input { flex: 1; min-width: 0; border: 0; outline: 0; color: var(--foreground); background: transparent; font-size: 12px; }
.team-filter { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 8px; min-height: 41px; padding: 0 10px 0 12px; border: 1px solid rgba(132,153,174,.18); border-radius: 13px; color: var(--muted); background: rgba(237,243,248,.72); box-shadow: inset 2px 2px 5px rgba(93,114,135,.06); font-size: 12px; font-weight: 700; white-space: nowrap; }
.team-filter select { min-width: 130px; min-height: 31px; padding: 0 25px 0 8px; border: 0; outline: 0; color: var(--primary); background: transparent; font-size: 12px; font-weight: 700; }
.team-filter select:disabled { color: #9aa8b5; cursor: not-allowed; }
.member-education-filter { padding-left: 6px; }
.member-education-filter select { min-width: 118px; }
.member-emergency-filter { padding-left: 6px; }
.member-emergency-filter select { min-width: 98px; }
.workspace-status-filter { display: inline-flex; align-items: center; gap: 3px; min-height: 41px; padding: 4px; border: 1px solid rgba(132,153,174,.18); border-radius: 13px; color: var(--muted); background: rgba(237,243,248,.72); box-shadow: inset 2px 2px 5px rgba(93,114,135,.06); font-size: 12px; font-weight: 700; }
.workspace-status-filter-label { margin: 0 6px 0 7px; white-space: nowrap; }
.workspace-status-filter button { min-height: 31px; padding: 0 9px; border: 0; border-radius: 9px; color: var(--muted); background: transparent; font: inherit; cursor: pointer; transition: color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition); }
.workspace-status-filter button:hover { color: var(--primary); background: rgba(255,255,255,.74); transform: translateY(-1px); }
.workspace-status-filter button.active { color: var(--primary-deep); background: #f7fbfd; box-shadow: 2px 3px 8px rgba(101,125,147,.12), -2px -2px 6px #fff; }
.workspace-status-filter button b { display: inline-grid; min-width: 19px; height: 19px; margin-left: 3px; place-items: center; padding: 0 4px; border-radius: 7px; color: #6d7f91; background: #e1eaf0; font-size: 12px; font-variant-numeric: tabular-nums; }
.workspace-status-filter button.active b { color: var(--primary); background: #e1edf4; }
.workspace-status-filter button.attendance-filter-active { color: var(--success); }
.workspace-status-filter button.attendance-filter-active:hover, .workspace-status-filter button.attendance-filter-active.active { color: var(--success); background: #e2f3e9; box-shadow: 2px 3px 8px rgba(47,122,89,.13), -2px -2px 6px #fff; }
.workspace-status-filter button.attendance-filter-active b { color: var(--success); background: #d9eee1; }
.workspace-status-filter button.attendance-filter-exited { color: var(--danger); }
.workspace-status-filter button.attendance-filter-exited:hover, .workspace-status-filter button.attendance-filter-exited.active { color: var(--danger); background: #f8e4e6; box-shadow: 2px 3px 8px rgba(169,67,75,.13), -2px -2px 6px #fff; }
.workspace-status-filter button.attendance-filter-exited b { color: var(--danger); background: #f3dadd; }
.workspace-status-filter button:focus-visible { outline: 3px solid rgba(73,105,135,.28); outline-offset: 2px; }
.compact-button { min-height: 38px; padding-inline: 14px; font-size: 12px; text-decoration: none; }
.heading-actions { display: flex; align-items: center; gap: 8px; }
.export-select { display: inline-flex; align-items: center; gap: 6px; color: #4f6b83; background: #e8eff4; white-space: nowrap; cursor: pointer; }
.export-select select { min-height: 27px; padding: 0 20px 0 6px; border: 0; border-left: 1px solid rgba(83,119,148,.18); outline: 0; color: var(--primary); background: transparent; font-size: 12px; font-weight: 800; cursor: pointer; }
.export-action-group { display: inline-flex; align-items: center; gap: 6px; }
.export-download-button { white-space: nowrap; }
.file-action { position: relative; cursor: pointer; }
.file-action input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.file-action.dragging { color: #fff; background: var(--primary); transform: translateY(-1px); box-shadow: 0 8px 18px rgba(83,119,148,.25); }
.file-action.uploading { color: #fff; background: var(--primary); }
.file-action.disabled { opacity: .5; cursor: not-allowed; }
.data-table { width: 100%; max-width: 100%; padding: 0 14px 14px; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-color: rgba(83,119,148,.55) rgba(219,228,235,.72); scrollbar-gutter: stable; scrollbar-width: auto; -webkit-overflow-scrolling: touch; }
.data-table::-webkit-scrollbar { height: 10px; }
.data-table::-webkit-scrollbar-track { border-radius: 999px; background: rgba(219,228,235,.72); }
.data-table::-webkit-scrollbar-thumb { border: 2px solid rgba(219,228,235,.72); border-radius: 999px; background: rgba(83,119,148,.55); }
.table-pager { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 24px 18px; color: var(--muted); font-size: 12px; }
.table-pager > div { display: flex; gap: 7px; }
.table-pager button:disabled { cursor: not-allowed; opacity: .45; }
.table-controls { display: flex; align-items: center; justify-content: flex-end; gap: 12px; padding: 0 24px 12px; color: var(--muted); font-size: 12px; }
.table-controls label { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.table-controls select { min-height: 30px; padding: 0 25px 0 9px; border: 1px solid rgba(132,153,174,.18); border-radius: 9px; color: var(--primary); background: rgba(237,243,248,.72); font-size: 12px; }
.sort-toggle { min-height: 30px; padding: 0 11px; border: 1px solid rgba(132,153,174,.18); border-radius: 9px; color: var(--primary); background: rgba(237,243,248,.72); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; transition: color var(--transition), background var(--transition), box-shadow var(--transition); }
.sort-toggle:hover, .sort-toggle[aria-pressed="true"] { color: var(--primary-deep); background: #e6f0f6; box-shadow: 0 3px 8px rgba(83,119,148,.1); }
.sort-toggle:focus-visible { outline: 3px solid rgba(73,105,135,.28); outline-offset: 2px; }
.clear-selection-button { color: var(--warning); background: #fff0e3; }
.clear-selection-button:hover { color: #87502f; background: #ffe7d2; }
.workspace-horizontal-scroll-row { position: sticky; top: var(--workspace-horizontal-scroll-top, 144px); z-index: 18; display: flex; align-items: center; gap: 10px; padding: 4px 24px 7px; border-bottom: 1px solid rgba(132,153,174,.12); color: var(--muted); background: rgba(248,251,253,.96); box-shadow: 0 8px 18px rgba(76,102,124,.08); font-size: 12px; backdrop-filter: blur(15px); }
.workspace-horizontal-scroll-row > span { flex: 0 0 auto; white-space: nowrap; }
.workspace-horizontal-scroll { flex: 1 1 auto; min-width: 0; height: 14px; overflow-x: auto; overflow-y: hidden; border-radius: 999px; scrollbar-color: rgba(83,119,148,.58) rgba(219,228,235,.76); scrollbar-width: auto; }
.workspace-horizontal-scroll::-webkit-scrollbar { height: 9px; }
.workspace-horizontal-scroll::-webkit-scrollbar-track { border-radius: 999px; background: rgba(219,228,235,.76); }
.workspace-horizontal-scroll::-webkit-scrollbar-thumb { border: 2px solid rgba(219,228,235,.76); border-radius: 999px; background: rgba(83,119,148,.58); }
.workspace-horizontal-scroll > div { height: 1px; }
.data-row { display: grid; grid-template-columns: minmax(190px,1.3fr) minmax(120px,.75fr) minmax(120px,.7fr) minmax(120px,.65fr) minmax(170px,.85fr); align-items: center; gap: 14px; min-height: 66px; padding: 10px 12px; border-bottom: 1px solid rgba(132,153,174,.11); color: #56697e; font-size: 12px; transition: background var(--transition), transform var(--transition); }
.data-row:not(.table-head):hover { border-radius: 15px; background: rgba(255,255,255,.6); transform: translateY(-1px); }
.data-row.table-head { min-height: 42px; color: #8795a5; font-size: 12px; font-weight: 700; }
.members-table .data-row { min-width: 1740px; grid-template-columns: 38px minmax(170px,1.1fr) minmax(175px,1fr) minmax(130px,.8fr) minmax(110px,.7fr) minmax(120px,.75fr) minmax(64px,.4fr) minmax(150px,.9fr) minmax(270px,1.55fr) minmax(100px,.65fr) minmax(205px,1.1fr); }
.certificate-table .data-row { grid-template-columns: minmax(170px,1.2fr) minmax(190px,1.3fr) minmax(140px,.9fr) minmax(175px,1.1fr) minmax(105px,.75fr) minmax(250px,1.6fr); }
.select-cell { display: grid; place-items: center; }
.select-cell input { width: 17px; height: 17px; accent-color: var(--primary); cursor: pointer; }
.member-contact, .member-dates { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.member-company-cell { display: flex; min-width: 0; flex-direction: column; gap: 4px; padding: 4px 6px; }
.member-company-cell b { overflow: hidden; color: var(--text-secondary); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.member-company-cell small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.member-company-cell .member-qr-export-status { color: #8b99a6; font-size: 11px; font-weight: 700; cursor: help; }
.member-company-cell .member-qr-export-status.exported { color: var(--success); }
.team-leader-warning { display: inline-grid; width: 15px; height: 15px; margin-left: 5px; place-items: center; border-radius: 50%; color: #fff; background: #c56b35; font-size: 11px; font-style: normal; font-weight: 800; vertical-align: -2px; cursor: help; box-shadow: 0 0 0 3px rgba(197,107,53,.1); }
.member-contact b, .member-dates b { overflow: hidden; color: var(--text-secondary); font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.member-contact small, .member-dates small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.member-dates small.exit-date { color: var(--danger); font-weight: 800; }
.editable-cell { cursor: pointer; border-radius: 9px; transition: color var(--transition), background var(--transition); }
.editable-cell:hover { color: var(--primary-deep); background: rgba(225,236,244,.55); }
.member-age { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.member-age b { color: var(--text-secondary); font-size: 12px; }
.member-age small { color: var(--danger); font-size: 11px; font-weight: 700; }
.member-age.age-warning { padding: 5px 7px; background: #fff1e7; }
.member-age.age-warning b { color: #a9572d; }
.warning-count { display: inline-flex; align-items: center; min-height: 23px; margin-left: 8px; padding: 0 8px; border-radius: 8px; color: #a9572d; background: #fff1e7; font-family: "PingFang SC",sans-serif; font-size: 12px; font-weight: 700; vertical-align: middle; }
.member-documents { display: flex; min-width: 0; align-items: center; gap: 5px; }
.member-document-drop { position: relative; display: grid; width: 49px; height: 43px; place-items: center; overflow: hidden; border: 1px dashed rgba(94,119,143,.3); border-radius: 10px; color: var(--muted); background: #edf3f7; cursor: pointer; text-align: center; }
.member-document-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.member-document-drop img { width: 100%; height: 100%; object-fit: cover; }
.member-document-drop small { display: none; }
.member-document-drop > span:not(.member-photo-uploading) { color: #75889a; font-size: 10px; line-height: 1.2; }
.member-document-drop.dragging { border-color: var(--primary); background: #e4eff6; box-shadow: inset 0 0 0 2px rgba(83,119,148,.12); }
.member-document-drop.uploading { border-color: var(--primary); }
.certificate-list-thumbnail { width: 30px; height: 30px; margin-right: 7px; vertical-align: middle; object-fit: cover; border: 1px solid rgba(94,119,143,.2); border-radius: 6px; background: #edf3f7; }
.certificate-category-label { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.member-photo-uploading { position: absolute; inset: 0; z-index: 3; display: grid; place-items: center; color: #fff; background: rgba(55,83,105,.62); }
.member-documents button, .member-documents i { position: relative; display: grid; width: 49px; height: 43px; place-items: center; overflow: hidden; border: 1px solid rgba(132,153,174,.16); border-radius: 10px; color: var(--muted); background: #edf3f7; font-size: 11px; font-style: normal; }
.member-documents button { padding: 0; cursor: pointer; }
.member-documents button img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--transition); }
.member-documents button small { display: none; }
.member-documents button:hover img { transform: scale(1.07); }
.record-title { position: relative; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 2px 10px; min-width: 0; }
.certificate-person-link { padding: 4px 6px; }
.certificate-person-link:hover b { color: var(--primary-deep); }
.record-title .company-icon { grid-row: 1 / 3; width: 38px; height: 38px; }
.record-title b { overflow: hidden; color: #405469; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.record-title small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.row-actions { display: flex; align-items: center; gap: 7px; }
.members-table .member-actions-heading, .members-table .member-actions { min-width: 205px; padding-left: 12px; border-left: 1px solid rgba(132,153,174,.16); }
.members-table .member-actions-heading { position: relative; grid-column: 11; }
.members-table .member-actions-heading::before { content: "安全交底"; position: absolute; left: -106px; width: 100px; text-align: center; }
.members-table .member-actions { justify-content: flex-start; white-space: nowrap; }
.members-table .entry-training-heading, .members-table .entry-training-cell { text-align: center; }
.members-table .entry-training-cell { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.education-table { overflow-x: auto; }
.education-table .data-row { min-width: 1080px; grid-template-columns: 38px minmax(150px,1.1fr) minmax(170px,1.15fr) minmax(100px,.75fr) minmax(125px,.85fr) minmax(85px,.65fr) minmax(85px,.65fr) minmax(90px,.7fr) minmax(80px,.6fr); }
.education-table .data-row.table-head { min-height: 46px; }
.education-table .education-photo-status { justify-self: center; }
.education-company { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.education-company b, .education-company small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.education-company b { color: var(--text-secondary); font-size: 12px; }
.education-company small { color: var(--muted); font-size: 12px; }
.education-summary { display: grid; grid-template-columns: repeat(4, minmax(130px,1fr)); gap: 10px; padding: 0 24px 18px; }
.safety-education-command { display: grid; gap: 14px; margin: 0 24px 18px; padding: 18px; border: 1px solid rgba(65,111,142,.2); border-radius: 18px; background: linear-gradient(135deg,#edf6f8,#f8fafc 64%,#eef5ee); box-shadow: 0 10px 26px rgba(64,91,113,.08); }
.safety-education-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.safety-education-metrics article { display: grid; min-height: 72px; padding: 12px 14px; align-content: center; gap: 3px; border: 1px solid rgba(84,120,145,.13); border-radius: 13px; background: rgba(255,255,255,.72); }
.safety-education-metrics span,.education-session-progress small { color: #7c8f9f; font-size: 12px; }
.safety-education-metrics strong { color: #38546a; font-size: 22px; }
.safety-education-baseline { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 14px; color: #687f90; font-size: 12px; line-height: 1.6; }
.safety-education-baseline strong { color: #3f5e74; }
.safety-education-baseline b { padding: 3px 8px; border-radius: 8px; color: #3f705b; background: #e2f1e8; }
.education-session-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.education-session-card { display: grid; gap: 11px; padding: 15px; border: 1px solid rgba(112,139,160,.18); border-radius: 15px; background: rgba(255,255,255,.82); }
.education-session-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.education-session-card h3 { margin: 0 0 4px; color: #385168; font-size: 15px; }
.education-session-card header p { margin: 0; color: #8796a4; font-size: 12px; }
.education-session-card header > span { flex: 0 0 auto; padding: 4px 8px; border-radius: 8px; color: #4c765f; background: #e6f3eb; font-size: 11px; font-weight: 700; }
.education-session-card.is-cancelled { opacity: .7; }
.education-session-levels { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.education-session-levels span { display: grid; padding: 8px; border-radius: 10px; color: #7a8c9b; background: #eef3f6; font-size: 11px; }
.education-session-levels b { color: #526c81; }
.education-session-progress { display: grid; gap: 6px; }
.education-session-progress > span { height: 7px; overflow: hidden; border-radius: 999px; background: #dfe8ed; }
.education-session-progress i { display: block; height: 100%; border-radius: inherit; background: #4e866d; }
.education-session-card > button { justify-self: end; }
.education-session-empty { display: grid; justify-items: center; gap: 4px; padding: 24px; border: 1px dashed rgba(91,126,150,.28); border-radius: 14px; color: #8b9aa7; text-align: center; }
.education-session-empty strong { color: #587086; }
.education-session-modal,.education-exam-modal {
  display: flex;
  flex-direction: column;
  width: min(900px,calc(100vw - 32px));
  height: min(900px,calc(100vh - 44px));
  max-height: calc(100vh - 44px);
  overflow: hidden;
}
.education-session-modal > .modal-heading,.education-exam-modal > .modal-heading { flex: 0 0 auto; }
.education-session-form,.education-exam-form {
  display: grid;
  flex: 1 1 auto;
  min-height: 0;
  align-content: start;
  overflow-y: auto;
  padding: 22px 24px 24px;
}
.education-session-form > .modal-actions,.education-exam-form > .modal-actions {
  position: sticky;
  bottom: -1px;
  z-index: 2;
  margin: 0;
  padding: 14px 0 2px;
  background: linear-gradient(180deg,rgba(243,247,250,0),#f3f7fa 30%);
}
.education-level-fieldset { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 14px; border: 1px solid rgba(112,139,160,.2); border-radius: 14px; }
.education-level-fieldset legend { padding: 0 7px; color: #526b80; font-size: 13px; font-weight: 700; }
.education-level-fieldset article { display: grid; align-content: start; gap: 10px; padding: 12px; border-radius: 12px; background: #f3f7f9; }
.education-level-fieldset article header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.education-level-fieldset article header label { display: flex; align-items: center; gap: 5px; }
.education-level-fieldset article header input { width: 62px; }
.education-exam-identity { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding: 18px 24px; border-bottom: 1px solid rgba(120,145,164,.15); background: #f4f8fa; }
.education-exam-identity label { display: grid; min-width: 260px; gap: 6px; color: #64798b; font-size: 12px; }
.education-exam-identity select { min-height: 42px; padding: 0 11px; border: 1px solid rgba(115,141,162,.22); border-radius: 11px; color: #425a6e; background: #fff; }
.education-exam-identity p { margin: 0; color: #8494a2; font-size: 12px; }
.education-exam-form { display: grid; gap: 13px; }
.education-question { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; padding: 14px; border: 1px solid rgba(119,145,164,.17); border-radius: 14px; }
.education-question legend { grid-column: 1 / -1; padding: 0 5px; color: #3d566b; font-size: 13px; line-height: 1.6; }
.education-question legend > span { display: inline-grid; width: 24px; height: 24px; margin-right: 7px; place-items: center; border-radius: 8px; color: #fff; background: #567b96; }
.education-question legend b,.education-question legend small { margin-right: 7px; color: #55788f; font-size: 11px; }
.education-question label { display: flex; min-height: 40px; padding: 9px 11px; align-items: center; gap: 8px; border: 1px solid rgba(124,148,166,.15); border-radius: 10px; color: #5c7082; background: #f5f8fa; cursor: pointer; }
.education-question label.selected { border-color: rgba(68,118,149,.42); color: #385a71; background: #e9f2f7; }
.education-signature-confirmation { display: grid; gap: 10px; padding: 15px; border: 1px solid rgba(71,125,100,.2); border-radius: 14px; background: #eef7f1; }
.education-signature-confirmation header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.education-signature-confirmation header div { display: grid; gap: 3px; }
.education-signature-confirmation small { color: #6c8075; line-height: 1.5; }
.education-signature-confirmation .hot-work-signature-pad { min-height: 150px; background: #fff; }
.education-exam-result { display: grid; justify-items: center; gap: 14px; padding: 34px 24px; text-align: center; }
.education-exam-result .result-mark { display: grid; width: 64px; height: 64px; place-items: center; border-radius: 50%; color: #fff; background: #b65b55; font-size: 34px; }
.education-exam-result.passed .result-mark { background: #448064; }
.education-exam-result strong { display: block; color: #385268; font-size: 34px; }
.education-exam-result h3 { margin: 5px 0 0; color: #456077; }
.education-exam-result ul { display: flex; gap: 8px; margin: 0; padding: 0; list-style: none; }
.education-exam-result li { padding: 7px 10px; border-radius: 9px; color: #607486; background: #edf3f6; }
.education-exam-result p { margin: 0; color: #728493; }
.education-summary-card { position: relative; display: flex; min-height: 78px; overflow: hidden; flex-direction: column; justify-content: center; padding: 12px 74px 12px 14px; border: 1px solid rgba(132,153,174,.16); border-radius: 13px; color: #738497; background: rgba(237,243,248,.72); font-family: inherit; text-align: left; cursor: pointer; transition: background var(--transition), border-color var(--transition), box-shadow var(--transition), transform var(--transition); }
.education-summary-card:hover { border-color: rgba(83,119,148,.34); background: #e8f0f6; transform: translateY(-1px); }
.education-summary-card.active { border-color: #527a99; background: #e3eef6; box-shadow: 0 0 0 2px rgba(82,122,153,.18), 0 9px 20px rgba(66,91,114,.13); transform: translateY(-3px); }
.education-summary-card.active::before { content: none; }
.education-summary-card.active::after { content: ""; position: absolute; right: 12px; bottom: 0; left: 12px; height: 4px; border-radius: 999px 999px 0 0; background: #527a99; }
.education-summary-card:focus-visible { outline: 3px solid rgba(47,111,159,.3); outline-offset: 3px; }
.education-summary-card.complete { border-color: rgba(91,153,117,.24); background: #edf8f0; }
.education-summary-card.complete:hover { border-color: rgba(63,128,102,.48); background: #e5f4e9; }
.education-summary-card.complete.active { border-color: #3f8066; background: #dff1e5; box-shadow: 0 0 0 2px rgba(63,128,102,.18), 0 9px 20px rgba(50,104,82,.13); }
.education-summary-card.complete.active::before, .education-summary-card.complete.active::after { background: #3f8066; }
.education-summary-card.pending { border-color: rgba(190,118,73,.24); background: #fff4e8; }
.education-summary-card.pending:hover { border-color: rgba(190,118,73,.48); background: #fff0df; }
.education-summary-card.pending.active { border-color: #b96f42; background: #ffead3; box-shadow: 0 0 0 2px rgba(185,111,66,.18), 0 9px 20px rgba(132,78,45,.13); }
.education-summary-card.pending.active::before, .education-summary-card.pending.active::after { background: #b96f42; }
.education-summary-card span { font-size: 12px; font-weight: 700; }
.education-summary-card strong { margin: 3px 0 1px; color: #405469; font-size: 22px; line-height: 1; }
.education-summary-card small { color: #9aa7b4; font-size: 11px; }
.education-upload-guide { display: flex; gap: 7px 16px; margin: 0 24px 14px; padding: 11px 13px; align-items: baseline; flex-wrap: wrap; border: 1px solid rgba(83,119,148,.14); border-radius: 12px; color: #71869a; background: rgba(232,239,244,.62); font-size: 12px; }
.education-upload-guide strong { color: #4d6b84; font-size: 12px; }
.education-photo-upload { display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; }
.education-upload-progress { display: grid; grid-template-columns: minmax(120px,1fr) auto; gap: 5px 12px; margin: 0 24px 14px; align-items: center; color: #5e7387; font-size: 12px; }
.education-upload-progress > span { height: 7px; overflow: hidden; border-radius: 999px; background: #dfe8ef; }
.education-upload-progress i { display: block; height: 100%; border-radius: inherit; background: #5f849f; transition: width .2s ease; }
.education-upload-progress small { grid-column: 1 / -1; overflow: hidden; color: var(--muted); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.education-upload-result { margin: 0 24px 16px; padding: 12px 14px; border: 1px solid rgba(70,139,101,.2); border-radius: 13px; color: #567061; background: #edf8f1; font-size: 12px; }
.education-upload-result.hasFailures { border-color: rgba(190,118,73,.25); color: #7b664f; background: #fff5e9; }
.education-upload-result > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.education-upload-result > div > button { width: 24px; height: 24px; border: 0; border-radius: 8px; color: inherit; background: rgba(255,255,255,.55); cursor: pointer; }
.education-upload-result p { margin: 8px 0 0; line-height: 1.6; }
.education-upload-result ul { display: grid; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }
.education-upload-result li { display: flex; gap: 8px; align-items: baseline; }
.education-upload-success-list li { align-items: center; justify-content: space-between; padding: 7px 9px; border-radius: 9px; background: rgba(255,255,255,.56); }
.education-upload-success-list li > span { display: grid; gap: 2px; min-width: 0; }
.education-upload-success-list li b { overflow: hidden; color: #3e7654; text-overflow: ellipsis; white-space: nowrap; }
.education-upload-success-list li small { color: #6d8275; }
.education-upload-result-link { flex: 0 0 auto; padding: 4px 8px; border: 1px solid rgba(62,118,84,.24); border-radius: 8px; color: #3e7654; background: #fff; font: inherit; font-weight: 700; text-decoration: none; cursor: pointer; }
.education-upload-result-link:hover { text-decoration: underline; }
.education-upload-failure-list li b { color: #9a613c; }
.education-photo-status { display: flex; flex-direction: column; align-items: center; gap: 3px; }
.education-photo-link { padding: 0; border: 0; color: #537795; background: transparent; font-size: 11px; font-weight: 700; cursor: pointer; }
.education-photo-link:hover { text-decoration: underline; }
.education-photo-status a.education-photo-link { text-decoration: none; }
.education-photo-status a.education-photo-link:hover { text-decoration: underline; }
.education-attachment-group { width: max-content; max-width: 100%; color: #537795; font-size: 11px; }
.education-attachment-group summary { padding: 4px 8px; border-radius: 8px; background: #e8eff4; font-weight: 800; cursor: pointer; list-style-position: inside; white-space: nowrap; }
.education-attachment-group[open] summary { color: var(--primary); background: #dfe9f0; }
.education-attachment-list { display: grid; gap: 5px; margin-top: 5px; padding: 7px; border: 1px solid rgba(83,119,149,.18); border-radius: 9px; background: #f8fbfd; }
.education-attachment-item { display: grid; grid-template-columns: auto auto auto; align-items: center; gap: 7px; white-space: nowrap; }
.education-attachment-item b { color: var(--text-secondary); font-size: 11px; font-weight: 700; }
.muted-action { color: var(--muted); font-size: 12px; }
.entry-training-status { min-width: 68px; min-height: 30px; padding: 0 10px; border: 0; border-radius: 10px; font-size: 12px; font-weight: 700; cursor: pointer; transition: transform var(--transition), filter var(--transition); }
.entry-training-status:hover { filter: brightness(.97); transform: translateY(-1px); }
.entry-training-status.completed { color: var(--success); background: #e2f3e9; }
.entry-training-status.pending { color: #b64d55; background: #fde7e5; }
.bulk-state-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(132,153,174,.16); }
.bulk-state-actions strong { width: 100%; color: var(--text-secondary); font-size: 12px; }
.bulk-state-actions button { min-height: 30px; padding: 0 10px; border: 0; border-radius: 9px; color: var(--primary); background: #e8eff4; font-size: 12px; font-weight: 700; cursor: pointer; }
.bulk-state-actions button:hover { background: #dfe9f0; }
.row-actions button { min-height: 32px; padding: 0 9px; border: 0; border-radius: 10px; color: var(--primary); background: #e8eff4; font-size: 12px; font-weight: 700; }
.row-actions button:hover { background: #dfe9f0; }
.bulk-state-actions button.entry-action, .row-actions button.entry-action { color: var(--success); background: #e2f3e9; }
.bulk-state-actions button.entry-action:hover, .row-actions button.entry-action:hover { background: #d5eddf; }
.bulk-state-actions button.exit-action, .row-actions button.exit-action { color: var(--danger); background: #f8e4e6; }
.bulk-state-actions button.exit-action:hover, .row-actions button.exit-action:hover { background: #f2d9dc; }
.verification-status { display: inline-flex; align-items: center; gap: 6px; width: max-content; min-height: 27px; padding: 0 9px; border-radius: 9px; font-size: 12px; font-weight: 700; cursor: pointer; transition: transform var(--transition), filter var(--transition); }
.verification-status:hover { filter: brightness(.97); transform: translateY(-1px); }
.verification-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.verification-status.verified { color: var(--success); background: #e6f3ec; }
.verification-status.failed { color: #b84242; background: #fdecec; }
.verification-status.pending { color: #a47738; background: #fff3df; }
.certificate-expiry { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.certificate-expiry > b { color: var(--text-secondary); font-size: 12px; }
.certificate-state { display: inline-flex; align-items: center; gap: 5px; width: max-content; min-height: 22px; padding: 0 7px; border-radius: 7px; font-size: 11px; font-weight: 700; }
.certificate-state i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.certificate-state.normal { color: var(--success); background: #e6f3ec; }
.certificate-state.expiring { color: #a47738; background: #fff3df; animation: warning-pulse 1.8s ease-in-out infinite; }
.certificate-state.expired { color: var(--danger); background: #f8e5e7; animation: warning-pulse 1.8s ease-in-out infinite; }
.certificate-state.no-expiry { color: #7c8b9d; background: #edf2f5; }
@keyframes warning-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(185,98,24,0); } 50% { box-shadow: 0 0 0 4px rgba(185,98,24,.08); } }
.row-actions .danger-text { color: var(--danger); background: #f7e8e9; }
.certificate-number-cell { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.certificate-number-edit { max-width: 170px; padding: 3px 6px; overflow: hidden; border: 0; border-bottom: 1px dashed rgba(83,119,148,.35); color: #526b83; background: transparent; font: inherit; font-weight: 700; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }
.certificate-number-edit:hover { color: var(--primary); border-bottom-color: var(--primary); background: #eef5f9; }
.photo-link { margin-right: 7px; padding: 3px 7px; border: 0; border-radius: 7px; color: #52738f; background: #e8eff4; font-size: 12px; }
.avatar-photo { grid-row: 1 / 3; width: 38px; height: 38px; padding: 0; overflow: hidden; border: 0; border-radius: 13px; background: #e6eef4; }
.avatar-photo img { width: 100%; height: 100%; object-fit: cover; }
.certificate-summary { display: flex; gap: 10px; padding: 0 24px 17px; }
.certificate-summary-card { padding: 8px 11px; border: 1px solid transparent; border-radius: 10px; color: #708196; background: #e9eff4; font-size: 12px; cursor: pointer; transition: background var(--transition), border-color var(--transition), transform var(--transition); }
.certificate-summary-card:hover, .certificate-summary-card.active { border-color: rgba(83,119,148,.3); color: var(--primary); background: #dfeaf2; transform: translateY(-1px); }
.certificate-summary b { margin-left: 4px; color: #41576c; font-size: 13px; }
.clickable-row { cursor: pointer; }
.clickable-row:hover .record-title b { color: var(--primary-deep); }
.company-context { display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 13px; margin-bottom: 13px; padding: 16px 18px; border: 1px solid rgba(255,255,255,.82); border-radius: 19px; background: rgba(248,251,253,.72); box-shadow: var(--shadow-card); }
.company-context > button { min-height: 38px; padding: 0 11px; border: 0; border-radius: 11px; color: #58738d; background: #e7eef4; font-size: 12px; font-weight: 700; }
.company-context h2 { margin: 2px 0 3px; color: #344a60; font-size: 18px; }
.company-context small, .company-context p { color: #7b8c9e; font-size: 12px; }
.company-context p { margin: 0; }
.record-modal { width: min(790px,100%); }
.field-editor-modal { width: min(460px,100%); }
.field-hint { margin: 11px 0 0; color: #7d8d9d; font-size: 12px; line-height: 1.6; }
.photo-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.photo-fields-hint { grid-column: 1 / -1; margin: 0; color: #7d8d9d; font-size: 12px; line-height: 1.5; }
.photo-picker { position: relative; display: grid !important; place-items: center; min-height: 150px; padding: 12px; overflow: hidden; border: 1px dashed rgba(94,119,143,.3); border-radius: 17px; color: #687b90 !important; background: rgba(232,239,245,.65); cursor: pointer; text-align: center; }
.photo-picker > span { position: absolute; z-index: 2; left: 11px; top: 9px; padding: 3px 7px; border-radius: 7px; color: #526b83; background: rgba(248,251,253,.9); font-size: 12px; }
.photo-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.photo-picker img { width: 100%; height: 128px; border-radius: 12px; object-fit: contain; background: white; }
.photo-picker b { color: #6f8296; font-size: 12px; }
.photo-picker.dragging { border-color: var(--primary); background: #e4eff6; box-shadow: inset 0 0 0 2px rgba(83,119,148,.12); }
.uploading-overlay { position: absolute; inset: 0; z-index: 4; display: flex; align-items: center; justify-content: center; gap: 8px; color: #fff; background: rgba(55,83,105,.62); backdrop-filter: blur(3px); font-size: 12px; font-weight: 700; }
.uploading-spinner { display: inline-block; width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: upload-spin .75s linear infinite; }
.uploading-spinner.small { width: 12px; height: 12px; border-width: 2px; vertical-align: -2px; }
@keyframes upload-spin { to { transform: rotate(360deg); } }
.certificate-uploader { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 13px; }
.certificate-photo { min-height: 190px; }
.certificate-photo img { height: 168px; }
.verification-modal { display: flex; width: min(calc(100vw - 44px),1800px); height: min(calc(100vh - 44px),1400px); max-width: none; max-height: calc(100vh - 44px); flex-direction: column; overflow: hidden; }
.verification-body { min-height: 0; padding: 22px 25px 25px; outline: none; overflow-y: auto; }
.verification-info { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.verification-info-item { display: grid; min-width: 0; gap: 8px; padding: 11px; border-radius: 13px; background: #e8eff4; }
.verification-info-item[role="button"] { cursor: pointer; transition: background var(--transition), box-shadow var(--transition), transform var(--transition); }
.verification-info-item[role="button"]:hover, .verification-info-item[role="button"]:focus-visible { background: #f1f6f9; box-shadow: 0 0 0 2px rgba(83,119,148,.14); transform: translateY(-1px); }
.verification-info-item.is-editing { background: #f1f6f9; box-shadow: 0 0 0 2px rgba(83,119,148,.18); }
.verification-info-item > span { display: flex; min-width: 0; flex-direction: column; }
.verification-inline-input { width: 100%; min-width: 0; margin-top: 4px; padding: 3px 5px; border: 1px solid rgba(83,119,148,.52); border-radius: 6px; outline: none; color: var(--primary-deep); background: #fff; font: inherit; font-size: 12px; font-weight: 700; box-shadow: 0 0 0 2px rgba(83,119,148,.1); }
.verification-inline-input:disabled { cursor: wait; opacity: .62; }
.verification-inline-error { margin: 9px 0 0; }
.verification-copy-button { justify-self: start; min-height: 25px; padding: 0 9px; border: 1px solid rgba(83,119,148,.2); border-radius: 8px; color: var(--primary); background: rgba(255,255,255,.6); font-size: 12px; font-weight: 700; cursor: pointer; transition: background var(--transition), color var(--transition), border-color var(--transition); }
.verification-copy-button:hover:not(:disabled) { border-color: rgba(83,119,148,.4); color: #385a76; background: #fff; }
.verification-copy-button:disabled { cursor: wait; opacity: .62; }
.verification-info small { color: #8090a2; font-size: 12px; }
.verification-info strong { overflow: hidden; margin-top: 4px; color: var(--primary-deep); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.verification-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }
.verification-toolbar > strong { color: #536c84; font-size: 12px; }
.verification-edit-hint { color: #8797a7; font-size: 12px; }
.verification-person-editor { margin-top: 10px; padding: 14px; border: 1px solid rgba(132,153,174,.16); border-radius: 15px; background: rgba(237,243,248,.56); }
.verification-person-editor .form-grid { gap: 12px; }
.verification-edit-certificate { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px; border-radius: 13px; background: #e8eff4; }
.verification-edit-certificate > label { flex: 1; min-width: 0; }
.verification-certificate-card { display: grid; grid-template-columns: minmax(0,1fr) 190px; align-items: center; gap: 14px; margin-top: 14px; padding: 13px; border: 1px solid rgba(132,153,174,.16); border-radius: 15px; background: rgba(237,243,248,.56); }
.verification-certificate-card > div:first-child { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.verification-certificate-card strong { color: var(--primary-deep); font-size: 13px; }
.verification-certificate-card small { color: #8795a5; font-size: 12px; }
.verification-certificate-image { display: block; width: 190px; height: 145px; padding: 5px; overflow: hidden; border: 1px solid rgba(132,153,174,.16); border-radius: 11px; background: #fff; cursor: zoom-in; }
.verification-certificate-image img { width: 100%; height: 100%; object-fit: contain; }
.verification-empty-certificate { display: grid; place-items: center; width: 190px; height: 145px; border: 1px dashed rgba(132,153,174,.28); border-radius: 11px; color: #91a0af; background: rgba(255,255,255,.55); font-size: 12px; }
.official-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.official-link { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; margin: 0; padding: 12px 14px; border-radius: 13px; color: var(--primary); background: #e0ebf3; font-size: 12px; font-weight: 700; text-decoration: none; }
.official-link { width: 100%; border: 0; text-align: left; cursor: pointer; }
.official-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.official-link b { flex: 0 0 auto; color: #6f8ca4; font-size: 12px; }
.official-embed { margin: 14px 0; padding: 10px; border: 1px solid rgba(83,119,148,.2); border-radius: 15px; background: #eef4f8; }
.official-embed-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 3px 9px; color: #526d84; font-size: 12px; }
.official-embed-actions { display: inline-flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.official-zoom-controls { display: inline-flex; align-items: center; gap: 4px; padding: 2px; border: 1px solid rgba(83,119,148,.18); border-radius: 9px; background: rgba(255,255,255,.68); }
.official-zoom-controls button { display: grid; place-items: center; min-width: 25px; height: 24px; padding: 0 6px; border: 0; border-radius: 6px; color: var(--primary); background: transparent; font: inherit; font-size: 14px; font-weight: 700; line-height: 1; cursor: pointer; }
.official-zoom-controls button:hover { background: #e0ebf3; }
.official-zoom-controls .official-zoom-value { min-width: 45px; color: #526d84; font-size: 12px; }
.official-open-new { color: var(--primary-deep); text-decoration: none; }
.official-embed-frame { height: calc(650px * var(--official-scale, 1)); max-width: 100%; overflow-x: hidden; overflow-y: auto; border: 1px solid rgba(83,119,148,.18); border-radius: 10px; background: #fff; }
.official-embed-canvas { width: var(--official-canvas-width, 100%); height: 650px; margin: 0 auto; transform: scale(var(--official-scale, 1)); transform-origin: top center; }
.official-embed iframe { display: block; width: 100%; min-width: 0; height: 650px; border: 0; background: #fff; }
.paste-zone { display: grid; place-items: center; min-height: 240px; overflow: hidden; border: 2px dashed rgba(93,118,141,.25); border-radius: 18px; color: #728397; background: rgba(235,241,246,.65); text-align: center; cursor: pointer; }
.paste-zone:focus-visible { outline: 3px solid rgba(61,113,151,.24); outline-offset: 3px; }
.paste-zone.has-image { border-style: solid; }
.paste-zone img { width: 100%; max-height: 420px; object-fit: contain; }
.paste-zone p { margin: 5px 0 0; font-size: 12px; }
.paste-zone.dragging { border-color: var(--primary); color: #4f718f; background: #e4eff6; box-shadow: inset 0 0 0 2px rgba(83,119,148,.12); }
.paste-zone.uploading { border-color: var(--primary); }
.verification-file-picker { position: relative; margin-top: 10px; cursor: pointer; }
.verification-file-picker input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.verification-check-actions { display: flex; align-items: flex-start; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.verification-action-hint { display: flex; flex: 1 0 100%; align-items: flex-start; gap: 8px; min-width: 0; padding: 9px 11px; border: 1px solid rgba(22,119,210,.2); border-radius: 10px; color: var(--primary); background: #eef7ff; line-height: 1.35; }
.verification-action-hint-icon { display: grid; flex: 0 0 20px; place-items: center; width: 20px; height: 20px; border-radius: 50%; color: #fff; background: #1677d2; font-size: 12px; font-weight: 800; }
.verification-action-hint strong { display: block; color: #1f5d91; font-size: 12px; }
.verification-action-hint small { display: block; margin-top: 2px; color: #6f8396; font-size: 12px; }
.verification-check-button { min-width: 122px; border-color: #1677d2; color: #fff; background: #1677d2; box-shadow: 0 6px 14px rgba(22,119,210,.22); font-weight: 800; }
.verification-check-button:hover:not(:disabled) { border-color: #0f62b1; background: #0f62b1; box-shadow: 0 8px 18px rgba(22,119,210,.3); transform: translateY(-1px); }
.verification-check-button:focus-visible { outline: 3px solid rgba(22,119,210,.25); outline-offset: 2px; }
.verification-check-button:disabled { border-color: #dbe5ed; color: var(--muted); background: #e6edf3; box-shadow: none; cursor: not-allowed; transform: none; }
.verification-check-result { display: flex; flex: 1 1 260px; min-width: 0; flex-direction: column; gap: 3px; padding: 8px 10px; border-radius: 10px; color: #5c6e80; background: #eef3f7; font-size: 12px; line-height: 1.45; }
.verification-check-result strong { color: inherit; font-size: 12px; }
.verification-check-result small { color: #8090a2; font-size: 12px; }
.verification-check-result.is-matched { color: #2c7659; background: #e6f4ec; }
.verification-check-result.is-failed { color: #a0474f; background: #f8e5e7; }
.verification-check-result.is-checking { color: var(--primary); background: #e8f0f6; }
.verification-correction { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 10px; margin-top: 10px; padding: 11px 12px; border: 1px solid rgba(183,133,49,.24); border-radius: 12px; background: #fff8eb; }
.verification-correction-heading { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.verification-correction-heading strong { color: #8d6427; font-size: 12px; }
.verification-correction-heading small { color: #967c57; font-size: 12px; line-height: 1.45; }
.verification-correction-form { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,2fr) minmax(120px,1fr) minmax(150px,1fr); gap: 10px; margin: 1px 0 0; padding-top: 10px; border-top: 1px solid rgba(183,133,49,.16); }
.verification-correction-form label { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.verification-correction-form label span { color: #846b47; font-size: 12px; font-weight: 700; }
.verification-correction-form input, .verification-correction-form select { width: 100%; min-height: 34px; padding: 0 9px; border: 1px solid rgba(183,133,49,.3); border-radius: 8px; outline: none; color: #5f523f; background: #fffdf9; font: inherit; font-size: 12px; }
.verification-correction-form input:focus, .verification-correction-form select:focus { border-color: #b78331; box-shadow: 0 0 0 3px rgba(183,133,49,.13); }
.verification-correction-error { grid-column: 1 / -1; margin: 0; }
.verification-correction-actions { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 8px; }
.verification-raw-text { margin-top: 8px; color: #647589; font-size: 12px; }
.verification-raw-text summary { cursor: pointer; color: var(--primary); font-weight: 700; }
.verification-raw-text pre { max-height: 150px; margin: 6px 0 0; overflow: auto; padding: 8px 10px; border: 1px solid #dbe5ed; border-radius: 8px; background: #f7fafc; color: #506174; white-space: pre-wrap; word-break: break-all; font: inherit; line-height: 1.5; }
.image-viewer { position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; overflow: auto; padding: 65px 24px 24px; background: rgba(15,24,32,.9); backdrop-filter: blur(12px); }
.image-viewer > button { position: absolute; right: 24px; top: 20px; display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 14px; color: white; background: rgba(255,255,255,.12); }
.image-viewer img { max-width: min(1100px,94vw); max-height: 78vh; object-fit: contain; border-radius: 16px; box-shadow: 0 22px 80px rgba(0,0,0,.45); transition: transform 160ms ease-out; transform-origin: center center; }
.image-viewer p { margin: 0; color: #dce5ec; font-size: 13px; }
.image-viewer-gallery { display: flex; align-items: center; justify-content: center; gap: 12px; color: #fff; }
.image-viewer-gallery button { min-height: 35px; padding: 0 14px; border: 0; border-radius: 10px; color: #fff; background: rgba(255,255,255,.14); font-size: 12px; font-weight: 700; cursor: pointer; }
.image-viewer-gallery button:hover { background: rgba(255,255,255,.24); }
.image-viewer-gallery span { min-width: 42px; text-align: center; font-size: 12px; font-weight: 700; }
.image-editor-stage { display: grid; place-items: center; max-width: 94vw; max-height: 68vh; }
.image-editor-canvas { position: relative; overflow: hidden; background: #101820; box-shadow: 0 22px 80px rgba(0,0,0,.45); touch-action: none; }
.image-editor-canvas > img { display: block; width: 100%; height: 100%; max-width: none; max-height: none; border-radius: 0; object-fit: contain; }
.image-crop-box { position: absolute; border: 2px solid #fff; box-shadow: 0 0 0 9999px rgba(0,0,0,.48); cursor: move; touch-action: none; }
.image-crop-handle { position: absolute; width: 14px; height: 14px; border: 2px solid #fff; border-radius: 50%; background: #426987; touch-action: none; }
.image-crop-handle-nw { left: -8px; top: -8px; cursor: nwse-resize; }
.image-crop-handle-ne { right: -8px; top: -8px; cursor: nesw-resize; }
.image-crop-handle-sw { left: -8px; bottom: -8px; cursor: nesw-resize; }
.image-crop-handle-se { right: -8px; bottom: -8px; cursor: nwse-resize; }
.image-editor-toolbar, .image-viewer-actions { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.image-editor-toolbar button, .image-viewer-actions button { min-height: 35px; padding: 0 13px; border: 0; border-radius: 10px; color: #fff; background: rgba(255,255,255,.14); font-size: 12px; font-weight: 700; cursor: pointer; }
.image-editor-toolbar button:hover, .image-viewer-actions button:hover { background: rgba(255,255,255,.24); }
.image-editor-toolbar button.primary { background: #4e7898; }
.image-editor-toolbar button:disabled, .image-viewer-actions button:disabled { opacity: .5; cursor: not-allowed; }
.image-editor-error { margin-top: 2px; }
.auth-screen { position: relative; min-height: 100svh; display: grid; grid-template-rows: auto 1fr; overflow: hidden; isolation: isolate; padding: 0 clamp(20px, 3.5vw, 56px); color: var(--foreground); background: var(--background); }
.auth-screen.loading-auth { display: flex; align-items: center; justify-content: center; padding: 28px; }
.auth-ambient-canvas { position: fixed; inset: 0; z-index: 0; width: 100%; height: 100%; pointer-events: none; background: var(--background); }
.auth-topbar { position: relative; z-index: 1; display: flex; align-items: center; justify-content: flex-end; min-height: 98px; padding: 30px 0; }
.auth-topbar-nav { display: flex; align-items: center; gap: 28px; color: var(--muted); font-size: 12px; }
.auth-topbar-nav span { transition: color 220ms ease; }
.auth-topbar-nav span:hover, .auth-topbar-nav .nav-current { color: var(--foreground); }
.auth-card { position: relative; z-index: 1; display: flex; align-items: stretch; flex-direction: column; width: min(440px,100%); padding: 54px clamp(32px,5vw,56px); border: 1px solid var(--border); border-radius: 24px; color: var(--foreground); background: rgba(255,255,255,.86); box-shadow: var(--shadow-raised); backdrop-filter: blur(5px); }
.auth-screen:not(.loading-auth) .auth-card { justify-self: end; align-self: center; margin-bottom: 40px; }
.auth-card.loading-auth { justify-content: center; flex-direction: column; gap: 10px; min-height: 190px; width: min(360px,100%); }
.auth-card h1 { margin: 0 0 9px; color: var(--heading); font-family: inherit; font-size: 28px; font-weight: 760; letter-spacing: -.055em; }
.auth-subtitle { margin: 0 0 30px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.auth-form { display: grid; gap: 22px; width: 100%; }
.auth-form label { display: grid; gap: 9px; }
.auth-form label > span { color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.auth-form input { width: 100%; min-height: 52px; padding: 0 15px; border: 1px solid var(--border); border-radius: 12px; outline: 0; color: var(--foreground); background: var(--surface); box-shadow: inset 2px 2px 7px rgba(88,111,132,.06), inset -3px -3px 8px #fff; transition: border-color 220ms ease, background 220ms ease, box-shadow 220ms ease, transform 220ms cubic-bezier(.22,1,.36,1); }
.auth-form input:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(24,32,38,.06); }
.auth-form input:focus { border-color: var(--field-focus-border); background: #fff; transform: translateY(-1px); box-shadow: 0 0 0 4px rgba(73,105,135,.12), 0 8px 20px rgba(72,95,119,.1); }
.auth-submit { width: 100%; min-height: 52px; margin-top: 8px; border-color: var(--primary-deep); border-radius: 12px; color: #fff; background: var(--login-button-bg); box-shadow: none; transition: background 220ms ease, box-shadow 220ms ease, transform 220ms cubic-bezier(.22,1,.36,1); }
.auth-submit:hover { background: var(--primary-active); box-shadow: 0 12px 25px rgba(54,86,115,.28); transform: translateY(-1px); }
.auth-submit:active { transform: translateY(1px) scale(.985); }
.auth-hint { display: block; margin-top: 20px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.profile-logout { cursor: pointer; }
.detail-completeness { display: flex; align-items: center; gap: 10px; min-width: 210px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.8); border-radius: 15px; color: var(--text-secondary); background: rgba(239,246,250,.76); box-shadow: inset 2px 2px 5px rgba(93,114,135,.05), 4px 5px 12px rgba(93,114,135,.08); text-align: left; cursor: pointer; }
.detail-completeness:hover { transform: translateY(-1px); }
.detail-completeness > span:last-child { display: flex; flex-direction: column; gap: 3px; }
.detail-completeness strong { font-size: 12px; }
.detail-completeness small { color: var(--muted); font-size: 12px; }
.completeness-ring { display: grid; place-items: center; width: 42px; height: 42px; border: 4px solid #dbe8ef; border-top-color: #587b98; border-right-color: #80a5ba; border-radius: 50%; }
.completeness-ring b { color: #3e617b; font-size: 13px; line-height: 1; }
.completeness-ring small { margin-left: 1px; color: #7690a2; font-size: 10px; }
.integrity-badge { display: inline-flex; align-items: center; margin-left: 6px; padding: 2px 5px; border-radius: 5px; color: var(--warning); background: #fff0e3; font-size: 11px; font-style: normal; font-weight: 700; vertical-align: 1px; cursor: help; }
.integrity-badge:focus-visible { outline: 2px solid rgba(185,98,24,.5); outline-offset: 2px; }
.alert-modal { width: min(720px,100%); }
.notification-modal { width: min(680px,100%); }
.notification-center-body { padding: 18px 24px 25px; }
.notification-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 13px; color: var(--muted); font-size: 12px; }
.notification-toolbar button { padding: 5px 0; border: 0; color: #4f7592; background: transparent; font: inherit; font-weight: 800; cursor: pointer; }
.notification-toolbar button:hover { text-decoration: underline; }
.notification-toolbar button:disabled { color: #a5b0ba; cursor: default; text-decoration: none; }
.notification-list { display: grid; gap: 8px; max-height: 58vh; overflow: auto; padding: 2px; }
.notification-item { display: grid; grid-template-columns: 10px minmax(0,1fr) auto; align-items: center; gap: 13px; width: 100%; padding: 14px 13px; border: 1px solid rgba(129,151,171,.14); border-radius: 14px; color: #51677b; background: rgba(240,246,249,.72); text-align: left; cursor: pointer; transition: transform var(--transition), border-color var(--transition), background var(--transition), box-shadow var(--transition); }
.notification-item:hover { transform: translateY(-1px); border-color: rgba(84,121,151,.24); background: #f9fbfc; box-shadow: 0 5px 14px rgba(73,98,119,.08); }
.notification-item:focus-visible { outline: 3px solid rgba(74,128,168,.28); outline-offset: 2px; }
.notification-item.unread { background: rgba(231,242,247,.94); }
.notification-status { width: 8px; height: 8px; border-radius: 50%; background: #a9b5bf; }
.notification-item.unread .notification-status { background: #d8684f; box-shadow: 0 0 0 4px rgba(216,104,79,.1); }
.notification-copy { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.notification-copy strong { color: #3f586e; font-size: 13px; }
.notification-copy small { overflow: hidden; color: #718497; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.notification-copy time { color: #97a3ae; font-size: 11px; }
.notification-open { flex: 0 0 auto; color: #4f7592; font-size: 12px; font-weight: 800; }
.alert-center-body { padding: 20px 24px 25px; }
.alert-summary-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; color: var(--muted); font-size: 12px; }
.alert-summary-filter { min-height: 27px; padding: 6px 9px; border: 0; border-radius: 8px; color: var(--muted); background: #e8eff4; font: inherit; cursor: pointer; transition: box-shadow var(--transition), transform var(--transition), filter var(--transition); }
.alert-summary-filter:hover { filter: brightness(.98); transform: translateY(-1px); }
.alert-summary-filter:focus-visible { outline: 3px solid rgba(74,128,168,.28); outline-offset: 2px; }
.alert-summary-filter.active { box-shadow: inset 0 0 0 1px rgba(74,101,123,.34), 0 2px 7px rgba(74,101,123,.08); }
.alert-summary-row .alert-critical { color: #a44b52; background: #f8e5e7; }
.alert-summary-row .alert-high { color: var(--warning); background: #fff0e3; }
.alert-summary-row .alert-medium { color: #8e713a; background: #fff4dc; }
.alert-list { display: grid; gap: 8px; max-height: 54vh; overflow: auto; padding: 2px; }
.alert-item { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 12px; width: 100%; padding: 13px 12px; border: 1px solid rgba(129,151,171,.12); border-radius: 13px; color: #51677b; background: rgba(240,246,249,.74); text-align: left; cursor: default; transition: transform var(--transition), background var(--transition); }
.alert-item:hover { transform: translateY(-1px); background: #f8fbfc; }
.alert-dot { width: 9px; height: 9px; border-radius: 50%; background: #99a8b5; }
.alert-dot.critical { background: #b04f5a; box-shadow: 0 0 0 4px rgba(176,79,90,.1); }
.alert-dot.high { background: #c27a3d; }
.alert-dot.medium { background: #bd9a51; }
.alert-dot.low { background: #7d9caf; }
.alert-item-main { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.alert-item-main strong { overflow: hidden; color: #485f74; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.alert-item-main small { overflow: hidden; color: #8494a3; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.alert-group-item { align-items: start; }
.alert-group-main { gap: 5px; }
.alert-group-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.alert-group-heading > strong { min-width: 0; }
.alert-group-main > small { color: #708499; }
.alert-group-items { display: grid; gap: 6px; margin-top: 5px; }
.alert-group-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 9px; border: 1px solid rgba(129,151,171,.12); border-radius: 9px; background: rgba(248,251,252,.7); }
.alert-group-warning { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.alert-group-warning strong { color: #536a7d; font-size: 12px; font-weight: 800; white-space: normal; }
.alert-group-warning small { overflow: hidden; color: #8a99a7; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.alert-group-row .alert-actions { flex: 0 0 auto; }
.alert-entity { display: flex; min-width: 122px; flex-direction: column; align-items: flex-end; gap: 4px; color: #8b9aa7; font-size: 11px; text-align: right; }
.alert-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.alert-view-button { margin: 0; padding: 0; border: 0; color: #4f7592; background: transparent; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.alert-view-button:hover { color: #2f5e82; text-decoration: underline; }
.alert-view-button:focus-visible { outline: 2px solid rgba(74,128,168,.34); outline-offset: 3px; border-radius: 3px; }
.alert-ignore-button { margin: 0; padding: 0; border: 0; color: #a96842; background: transparent; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.alert-ignore-button:hover { color: #87502f; text-decoration: underline; }
.alert-ignore-button:focus-visible { outline: 2px solid rgba(180,111,70,.3); outline-offset: 3px; border-radius: 3px; }
.alert-ignore-button:disabled { opacity: .55; cursor: wait; }
.alert-ignore-all-button { flex: 0 0 auto; margin: 0; padding: 2px 0; border: 0; color: #a96842; background: transparent; font: inherit; font-size: 12px; font-weight: 800; cursor: pointer; }
.alert-ignore-all-button:hover { color: #87502f; text-decoration: underline; }
.alert-ignore-all-button:focus-visible { outline: 2px solid rgba(180,111,70,.3); outline-offset: 3px; border-radius: 3px; }
.alert-ignore-all-button:disabled { opacity: .55; cursor: wait; }
.release-notes-modal { width: min(680px, 100%); }
.release-notes-body { display: grid; gap: 12px; max-height: min(70vh,680px); overflow-y: auto; padding: 21px 26px 26px; }
.release-note-entry { padding: 16px 17px; border: 1px solid rgba(132,153,174,.16); border-radius: 15px; background: rgba(255,255,255,.58); }
.release-note-entry.current { border-color: rgba(70,123,151,.34); background: linear-gradient(145deg,rgba(234,245,249,.94),rgba(255,255,255,.7)); box-shadow: 0 8px 24px rgba(74,106,132,.09); }
.release-note-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); font-size: 12px; font-weight: 800; }
.release-note-meta span { padding: 3px 7px; border-radius: 6px; color: #3f6f64; background: #e7f2ed; }
.release-note-entry.current .release-note-meta span { color: #fff; background: #477b97; }
.release-note-entry h3 { margin: 12px 0 7px; color: #40586e; font-size: 14px; }
.release-note-entry ul { display: grid; gap: 7px; margin: 0; padding: 0; color: #667d91; font-size: 12px; list-style: none; }
.release-note-entry li { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: start; gap: 8px; line-height: 1.55; }
.release-note-entry li em { min-width: 30px; padding: 2px 5px; border-radius: 6px; color: #47738d; background: #e6f0f5; font-size: 10px; font-style: normal; font-weight: 900; text-align: center; }
.release-note-entry li em[data-type="优化"] { color: #4e765f; background: #e8f3ec; }
.release-note-entry li em[data-type="修复"] { color: #a65d3d; background: #fff0e6; }
.release-note-entry li em[data-type="新增"] { color: #3f718e; background: #e5f1f7; }
.certificate-table .data-row { grid-template-columns: 38px minmax(170px,1.2fr) minmax(190px,1.3fr) minmax(140px,.9fr) minmax(175px,1.1fr) minmax(105px,.75fr) minmax(250px,1.6fr); }

.account-modal { width: min(860px, 100%); }
.account-tabs { display: flex; gap: 8px; padding: 14px 26px 0; border-bottom: 1px solid rgba(132,153,174,.13); }
.account-tabs button { min-height: 38px; padding: 0 14px; border: 0; border-radius: 11px 11px 0 0; color: #7d8da0; background: transparent; font-size: 12px; font-weight: 800; }
.account-tabs button.active { color: var(--primary-deep); background: #e7eff5; }
.account-tabs button b { margin-left: 5px; color: #a84b21; }
.account-body { padding: 24px 26px 28px; }
.account-section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; margin: 4px 0 14px; padding-top: 17px; border-top: 1px solid rgba(132,153,174,.13); }
.account-section-heading strong, .account-list-heading strong { color: #3e5268; font-size: 14px; }
.account-section-heading small, .account-list-heading small { color: #8190a0; font-size: 12px; }
.account-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 13px; }
.account-list-heading > div { display: flex; flex-direction: column; gap: 4px; }
.account-list { display: grid; gap: 8px; }
.account-row { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 8px 10px; border: 1px solid rgba(132,153,174,.13); border-radius: 15px; background: rgba(255,255,255,.62); }
.small-avatar { width: 32px; height: 32px; border-radius: 11px; font-size: 12px; }
.account-row-main { display: flex; flex: 1; flex-direction: column; min-width: 0; }
.account-row-main strong { overflow: hidden; color: #3e5268; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.account-row-main small { margin-top: 3px; color: #8594a4; font-size: 12px; }
.account-row .status-pill { min-width: auto; min-height: 26px; font-size: 12px; }
.import-history-list { display: grid; gap: 10px; max-height: 58vh; overflow: auto; }
.import-history-batch { border: 1px solid rgba(132,153,174,.16); border-radius: 15px; background: rgba(255,255,255,.72); }
.import-history-batch > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 15px; cursor: pointer; }
.import-history-batch > summary span { display: flex; flex-direction: column; min-width: 0; gap: 4px; }
.import-history-batch > summary strong { overflow: hidden; color: #3e5268; text-overflow: ellipsis; white-space: nowrap; }
.import-history-batch > summary small, .import-history-batch > summary em { color: #8190a0; font-size: 12px; font-style: normal; }
.import-history-changes { display: grid; gap: 8px; padding: 0 12px 12px; }
.import-history-changes article { padding: 10px 12px; border-radius: 12px; background: #f4f7f9; }
.import-history-changes header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: #3e5268; }
.import-history-changes header small { color: #8190a0; }
.import-history-changes p { display: grid; grid-template-columns: 90px minmax(0,1fr) 18px minmax(0,1fr); gap: 7px; margin: 8px 0 0; font-size: 12px; }
.import-history-changes p b { color: #53687d; }
.import-history-changes p span { color: #9a653e; word-break: break-all; }
.import-history-changes p i { color: #9aa8b5; font-style: normal; text-align: center; }
.import-history-changes p em { color: #25714d; font-style: normal; word-break: break-all; }
.account-project-note { margin: 16px 0; padding: 12px 14px; border: 1px solid rgba(77,111,151,.16); border-radius: 13px; color: #53708b; background: #edf4f9; font-size: 12px; }
.account-project-picker { margin-top: 16px; }
.account-project-picker .account-section-heading { margin-top: 0; }
.account-project-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; max-height: 210px; overflow: auto; padding: 2px; }
.account-project-option { display: flex; align-items: flex-start; gap: 9px; min-width: 0; padding: 11px 12px; border: 1px solid rgba(132,153,174,.15); border-radius: 13px; background: rgba(255,255,255,.64); cursor: pointer; }
.account-project-option:has(input:checked) { border-color: rgba(77,111,151,.45); background: #edf4f9; box-shadow: 0 4px 12px rgba(75,105,128,.08); }
.account-project-option input { flex: 0 0 auto; margin-top: 2px; accent-color: #4d6f97; }
.account-project-option span { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.account-project-option strong { overflow: hidden; color: var(--primary-deep); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.account-project-option small { overflow: hidden; color: #8795a3; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.account-team-scope-grid { align-items: end; }
.account-team-scope-grid label { min-width: 0; }
.wps-import-trigger { display: inline-flex; align-items: center; gap: 6px; color: #3f6f64; background: #e7f2ed; white-space: nowrap; }
.wps-import-trigger:hover { color: #2d5f54; background: #dcece5; }
.wps-import-trigger svg { width: 17px; height: 17px; }
.wps-import-modal { width: min(620px, 100%); }
.wps-import-form { padding: 23px 26px 25px; }
.wps-link-field { display: flex; flex-direction: column; gap: 8px; color: var(--text-secondary); font-size: 12px; font-weight: 800; }
.wps-link-field input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid rgba(83,119,148,.28); border-radius: 14px; outline: 0; color: var(--primary-deep); background: rgba(255,255,255,.82); box-shadow: inset 2px 2px 5px rgba(93,114,135,.05); transition: border-color var(--transition), box-shadow var(--transition), background var(--transition); }
.wps-link-field input:focus { border-color: rgba(62,126,109,.6); background: #fff; box-shadow: 0 0 0 3px rgba(62,126,109,.12); }
.wps-link-field input::placeholder { color: #a0adba; }
.wps-import-help { margin-top: 14px; padding: 13px 15px; border: 1px solid rgba(62,126,109,.16); border-radius: 14px; color: #61796f; background: #edf6f2; font-size: 12px; line-height: 1.6; }
.wps-import-help strong { color: var(--success); }
.wps-import-help ul { margin: 7px 0 0; padding-left: 18px; }
.wps-import-help li + li { margin-top: 3px; }
.import-preview-modal { width: min(1080px, 100%); }
.import-preview-body { padding: 22px 26px 26px; }
.import-progress { margin-bottom: 16px; padding: 13px 15px; border: 1px solid rgba(75,111,151,.17); border-radius: 14px; background: rgba(237,245,251,.82); }
.import-progress-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--primary); font-size: 12px; }
.import-progress-top span { color: var(--primary-deep); font-variant-numeric: tabular-nums; font-weight: 800; }
.import-progress-track { height: 8px; margin-top: 9px; overflow: hidden; border-radius: 999px; background: #d8e5f0; }
.import-progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#4d86c5,#71b7a0); box-shadow: 0 2px 8px rgba(53,105,157,.2); transition: width .25s ease; }
.import-progress small { display: block; margin-top: 7px; color: var(--muted); font-size: 12px; }
.import-sheet-picker { display: flex; flex-direction: column; gap: 11px; margin-bottom: 15px; padding: 14px 15px; border: 1px solid rgba(75,111,151,.17); border-radius: 14px; background: rgba(246,249,252,.82); }
.import-sheet-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.import-sheet-heading > span { display: flex; flex-direction: column; gap: 3px; color: var(--primary-deep); }
.import-sheet-heading small { color: #8292a2; font-size: 12px; font-weight: 400; }
.import-sheet-options { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 8px; }
.import-sheet-options label { display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; border: 1px solid rgba(132,153,174,.18); border-radius: 10px; background: #fff; color: #4c6277; cursor: pointer; }
.import-sheet-options label:has(input:checked) { border-color: rgba(77,111,151,.48); background: #edf5fb; box-shadow: inset 0 0 0 1px rgba(77,111,151,.08); }
.import-sheet-options label.disabled { cursor: not-allowed; opacity: .55; }
.import-sheet-options input { margin-top: 2px; accent-color: #4d6f97; }
.import-sheet-options span { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.import-sheet-options b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.import-sheet-options small { color: var(--muted); font-size: 12px; }
.import-sheet-pending { margin: 0; color: var(--warning); font-size: 12px; }
.import-result-sheet-picker { margin-top: 15px; margin-bottom: 0; border-color: rgba(77,111,151,.24); background: linear-gradient(135deg,rgba(237,245,251,.94),rgba(246,249,252,.82)); }
.import-result-sheet-picker .field-hint { margin: 0; }
.import-safety-tag { display: inline-block; margin-left: 5px; padding: 2px 5px; border-radius: 5px; color: #387b68; background: #e5f3ed; font-size: 11px; font-style: normal; font-weight: 700; }
.import-summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; }
.import-summary-grid span, .import-summary-grid button { display: flex; flex-direction: column; gap: 3px; padding: 13px 14px; border: 1px solid rgba(132,153,174,.13); border-radius: 14px; background: rgba(255,255,255,.6); }
.import-summary-grid button { width: 100%; color: inherit; text-align: left; cursor: pointer; transition: border-color .18s ease, background .18s ease, box-shadow .18s ease, transform .18s ease; }
.import-summary-grid button:hover, .import-summary-grid button:focus-visible { border-color: rgba(77,111,151,.42); background: rgba(237,245,251,.9); box-shadow: 0 5px 14px rgba(75,105,128,.1); transform: translateY(-1px); outline: none; }
.import-summary-grid button.active { border-color: #4d6f97; background: #e8f1f8; box-shadow: 0 0 0 2px rgba(77,111,151,.12), 0 6px 16px rgba(75,105,128,.12); }
.import-summary-grid b { color: var(--primary-deep); font-size: 21px; font-variant-numeric: tabular-nums; }
.import-summary-grid small { color: #8090a1; font-size: 12px; }
.import-preview-filter-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; padding: 9px 12px; border: 1px solid rgba(77,111,151,.18); border-radius: 10px; background: #edf5fb; color: #59718a; font-size: 12px; }
.import-preview-filter-bar strong { color: var(--primary-deep); }
.import-filter-empty { margin-top: 15px; }
.import-error-summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; padding: 12px 14px; border: 1px solid #f0d3b5; border-radius: 14px; background: #fff7ed; color: #7d6a58; }
.import-error-summary > div { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
.import-error-summary strong { color: var(--warning); font-size: 12px; }
.import-error-summary span { color: #9a8069; font-size: 12px; }
.import-failure-banner { align-items: center; border-color: #edb1a9; background: linear-gradient(135deg,#fff0ee,#fff8f1); box-shadow: 0 8px 22px rgba(189,85,65,.08); }
.import-failure-mark { display: grid; flex: 0 0 auto; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: #d85748; font-size: 17px; font-weight: 900; }
.import-bulk-controls { display: flex; flex-direction: column; gap: 9px; margin-top: 14px; padding: 12px 14px; border: 1px solid rgba(75,111,151,.16); border-radius: 14px; background: rgba(237,245,251,.68); }
.import-bulk-heading { display: flex; align-items: baseline; gap: 9px; color: var(--primary-deep); }
.import-bulk-heading small { color: #8292a2; font-size: 12px; }
.import-bulk-group { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; color: #61778b; font-size: 12px; }
.import-bulk-group > span { font-weight: 700; }
.import-bulk-group > span b { color: var(--primary-deep); font-size: 14px; }
.import-bulk-group label { display: inline-flex; align-items: center; gap: 6px; }
.import-bulk-group input, .import-bulk-group select { min-width: 110px; padding: 5px 7px; border: 1px solid rgba(132,153,174,.32); border-radius: 7px; color: var(--primary-deep); background: #fff; font-size: 12px; }
.import-bulk-update-group { align-items: stretch; flex-direction: column; }
.import-update-mode-picker { min-width: 0; margin: 0; padding: 11px 12px 12px; border: 1px solid rgba(90,126,159,.24); border-radius: 12px; background: rgba(255,255,255,.62); }
.import-update-mode-picker legend { padding: 0 6px; color: var(--primary-deep); font-size: 12px; font-weight: 800; }
.import-update-mode-picker > p { margin: 0 0 10px; color: #77899a; font-size: 12px; line-height: 1.5; }
.import-update-mode-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.import-update-mode-button { display: flex; min-width: 0; min-height: 148px; flex-direction: column; align-items: stretch; gap: 7px; padding: 12px; border: 1px solid rgba(105,134,161,.22); border-radius: 12px; color: #52687d; background: #fff; text-align: left; box-shadow: 0 4px 12px rgba(76,105,130,.06); transition: border-color var(--transition), background var(--transition), box-shadow var(--transition), transform var(--transition); }
.import-update-mode-button:hover { border-color: rgba(77,111,151,.46); background: #f7fbfe; transform: translateY(-1px); }
.import-update-mode-button:focus-visible { outline: 3px solid rgba(73,105,135,.28); outline-offset: 2px; }
.import-update-mode-button.active { border-color: #4d7fac; background: linear-gradient(145deg,#eaf5fc,#f4fbff); box-shadow: 0 0 0 2px rgba(77,127,172,.12), 0 7px 18px rgba(66,108,145,.12); }
.import-update-mode-button > span { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.import-update-mode-button > span b { color: #607b92; font-size: 11px; letter-spacing: .08em; }
.import-update-mode-button > span em { padding: 3px 6px; border-radius: 999px; color: #7a8d9f; background: #eef3f7; font-size: 11px; font-style: normal; font-weight: 800; }
.import-update-mode-button.active > span em { color: #fff; background: #2f78b2; }
.import-update-mode-button > strong { color: var(--primary-deep); font-size: 12px; line-height: 1.35; }
.import-update-mode-button > small { color: #6d8194; font-size: 12px; line-height: 1.55; }
.import-update-mode-button > i { margin-top: auto; color: #8b704d; font-size: 11px; font-style: normal; line-height: 1.45; }
.import-bulk-apply { display: flex; align-items: center; gap: 10px; }
.import-bulk-apply small { line-height: 1.45; }
.import-bulk-apply .import-bulk-apply-button { display: inline-flex; min-height: 42px; align-items: center; justify-content: center; gap: 7px; padding: 0 22px; border: 1px solid #075a9c; border-radius: 13px; color: #fff; background: linear-gradient(135deg,#1687d3,#075a9c); box-shadow: 0 8px 18px rgba(7,90,156,.28); font-size: 13px; font-weight: 800; }
.import-bulk-apply .import-bulk-apply-button:hover { background: linear-gradient(135deg,#0f79c3,#064f8b); box-shadow: 0 10px 22px rgba(7,90,156,.34); transform: translateY(-1px); }
.import-bulk-apply .import-bulk-apply-button:focus-visible { outline: 3px solid rgba(22,135,211,.32); outline-offset: 3px; }
@media (max-width: 900px) { .import-update-mode-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
.import-failure-banner strong { color: #b23c30; font-size: 13px; }
.import-failure-banner span:not(.import-failure-mark) { color: #8c625d; }
.import-failure-result { margin-top: 12px; }
.text-button { flex: 0 0 auto; border: 0; color: var(--primary-deep); background: transparent; font-size: 12px; font-weight: 800; cursor: pointer; }
.text-button:hover { text-decoration: underline; }
.import-preview-table { max-height: min(48vh, 520px); overflow: auto; margin-top: 15px; border: 1px solid rgba(132,153,174,.16); border-radius: 15px; background: rgba(255,255,255,.54); }
.import-preview-row { display: grid; grid-template-columns: 105px minmax(150px,1.2fr) minmax(150px,1.1fr) 110px minmax(250px,1.7fr) minmax(220px,1.25fr); align-items: start; gap: 12px; min-height: 52px; padding: 10px 13px; border-bottom: 1px solid rgba(132,153,174,.1); color: #52667b; font-size: 12px; }
.import-preview-row:last-child { border-bottom: 0; }
.import-preview-head { position: sticky; top: 0; z-index: 1; align-items: center; min-height: 38px; color: #7a8a9a; background: #edf3f8; font-size: 12px; font-weight: 800; }
.import-preview-row span:nth-child(1), .import-preview-row span:nth-child(2), .import-preview-row span:nth-child(6) { display: flex; flex-direction: column; min-width: 0; }
.import-preview-row strong { overflow: hidden; color: var(--primary-deep); text-overflow: ellipsis; white-space: nowrap; }
.import-preview-row small { margin-top: 3px; overflow: hidden; color: #8a98a7; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.import-action, .import-ok, .import-warning, .import-error { display: inline-block; max-width: 100%; overflow: hidden; font-size: 12px; font-style: normal; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.import-action.create { color: var(--success); }.import-action.update { color: var(--primary); }.import-action.supplement { color: #287f72; }.import-action.duplicate { color: var(--warning); }.import-action.skip { color: #8a98a7; }.import-action.blocked { color: var(--danger); }
.import-action-note { display: block; margin-top: 3px; color: #708396; font-size: 12px; line-height: 1.4; overflow: visible; text-overflow: clip; white-space: normal; }
.import-action-note.update { color: var(--primary); }.import-action-note.duplicate { color: #9b672f; }.import-action-note.supplement { color: #287f72; }
.import-change-summary { display: block; margin-top: 3px; color: var(--primary); font-size: 12px; line-height: 1.35; white-space: normal; }
.import-photo-comparisons { display: flex; flex-direction: column; gap: 7px; margin-top: 7px; }
.import-photo-comparisons article { padding: 7px; border: 1px solid rgba(75,111,151,.16); border-radius: 9px; background: rgba(255,255,255,.7); }
.import-photo-comparisons article > strong { display: block; margin-bottom: 6px; color: #526f89; font-size: 12px; white-space: normal; }
.import-photo-comparisons article > div { display: grid; grid-template-columns: minmax(0,1fr) 14px minmax(0,1fr); align-items: center; gap: 5px; }
.import-photo-comparisons article > div > em { color: #8296a8; font-size: 14px; font-style: normal; text-align: center; }
.import-photo-comparisons button { display: flex; min-width: 0; flex-direction: column; gap: 4px; padding: 5px; border: 1px solid rgba(111,139,164,.2); border-radius: 8px; color: #61788d; background: #f7fafc; font-size: 11px; font-weight: 800; }
.import-photo-comparisons button:hover { border-color: rgba(77,111,151,.46); background: #edf5fb; }
.import-photo-comparisons button:focus-visible { outline: 3px solid rgba(73,105,135,.28); outline-offset: 2px; }
.import-photo-comparisons img { width: 100%; height: 72px; object-fit: contain; border-radius: 5px; background: #fff; }
.import-ok { color: var(--success); }.import-warning { color: var(--warning); }.import-error { color: var(--danger); }
.import-update-choice { display: flex; flex-direction: column; gap: 5px; margin-top: 6px; padding: 7px 8px; border: 1px solid rgba(75,111,151,.16); border-radius: 9px; background: rgba(237,245,251,.72); }
.import-update-choice strong { color: var(--primary-deep); font-size: 12px; }
.import-update-choice small { white-space: normal; }
.import-change-detail { display: grid; grid-template-columns: minmax(58px,.7fr) minmax(78px,1fr) auto minmax(78px,1fr); align-items: center; gap: 4px 6px; padding-top: 4px; border-top: 1px solid rgba(75,111,151,.12); color: #708396; line-height: 1.35; overflow: visible; text-overflow: clip; }
.import-change-detail b { color: var(--primary-deep); font-size: 12px; }.import-change-detail i { color: #8aa0b4; font-style: normal; }.import-change-detail span:last-child { color: #2f6e9e; font-weight: 700; }
.import-change-detail span { overflow-wrap: anywhere; }
.import-check-result { gap: 4px; }
.import-issue-detail { display: block; padding-left: 8px; border-left: 2px solid currentColor; font-size: 12px; line-height: 1.45; overflow: visible; text-overflow: clip; white-space: normal; }
.import-issue-detail.error { color: var(--danger); }.import-issue-detail.warning { color: var(--warning); }
.import-result-card { display: flex; align-items: center; gap: 14px; padding: 18px; border: 1px solid #cce8da; border-radius: 17px; background: #edf8f2; }
.import-result-icon { display: grid; flex: 0 0 auto; place-items: center; width: 42px; height: 42px; border-radius: 14px; color: white; background: #2b765d; font-size: 23px; }
.import-result-card strong { color: var(--success); font-size: 16px; }.import-result-card p { margin: 5px 0 0; color: #5e7e70; font-size: 12px; }.import-result-card small { display: block; margin-top: 4px; color: #7e9c8e; font-size: 12px; }
.import-result-card.has-import-failures { border-color: #f0d3b5; background: #fff7ed; }
.import-result-card.has-import-failures .import-result-icon { background: #b86b2b; }
.import-result-card.has-import-failures strong { color: var(--warning); }
.import-result-card.has-import-failures p { color: #896d53; }
.import-failure-list { max-height: min(34vh, 330px); overflow: auto; margin-top: 15px; padding: 13px; border: 1px solid #f0d3b5; border-radius: 15px; background: #fffaf4; }
.import-failure-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 0 3px 8px; color: var(--warning); }
.import-failure-heading strong { font-size: 13px; }
.import-failure-heading small { color: #9a8069; font-size: 12px; }
.import-failure-row { display: grid; grid-template-columns: 65px minmax(90px,.7fr) minmax(140px,1fr) minmax(180px,1.5fr); align-items: center; gap: 9px; min-height: 38px; padding: 7px 3px; border-top: 1px solid rgba(224,177,129,.2); color: #7d6a58; font-size: 12px; }
.import-failure-row strong { overflow: hidden; color: #6f513a; text-overflow: ellipsis; white-space: nowrap; }
.import-failure-row small, .import-failure-row em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.import-failure-row em { color: var(--danger); font-style: normal; }
.import-update-list { max-height: min(28vh, 280px); overflow: auto; margin-top: 15px; padding: 13px; border: 1px solid #cbdceb; border-radius: 15px; background: #f5f9fc; }
.import-update-list .import-failure-heading { color: var(--primary); }
.import-update-row { display: grid; grid-template-columns: 65px minmax(90px,.7fr) minmax(140px,1fr) minmax(180px,1.5fr); align-items: center; gap: 9px; min-height: 38px; padding: 7px 3px; border-top: 1px solid rgba(132,153,174,.18); color: #6f8396; font-size: 12px; }
.import-update-row strong { overflow: hidden; color: var(--primary-deep); text-overflow: ellipsis; white-space: nowrap; }
.import-update-row small, .import-update-row em { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.import-update-row em { color: var(--primary); font-style: normal; font-weight: 700; }

@media (max-width: 1180px) {
  .stats { grid-template-columns: repeat(2,1fr); }
  .project-card { grid-template-columns: minmax(230px,1.2fr) minmax(300px,1.6fr) auto; }
  .progress-block { display: none; }
  .project-meta { grid-template-columns: repeat(4,1fr); }
  .detail-stats { grid-template-columns: repeat(2,1fr); }
  .data-row { min-width: 850px; }
  .certificate-table .data-row { min-width: 1120px; }
}

@media (max-width: 1420px) {
  .member-workspace-filters .workspace-search { flex: 1 1 100%; }
  .member-workspace-filters .workspace-status-filter { flex: 0 0 auto; }
  .member-workspace-filters .workspace-status-filter button { white-space: nowrap; }
}

@media (max-width: 860px) {
  .sidebar { transform: translateX(-105%); transition: transform var(--transition); }
  .sidebar.open { transform: translateX(0); }
  .mobile-scrim { position: fixed; inset: 0; z-index: 29; display: block; visibility: hidden; opacity: 0; background: rgba(48,64,80,.3); backdrop-filter: blur(3px); transition: opacity var(--transition), visibility var(--transition); }
  .mobile-scrim.visible { visibility: visible; opacity: 1; }
  main { margin-left: 0; }
  .mobile-menu { display: grid; }
  .topbar { gap: 12px; padding: 0 20px; }
  .global-search { width: 100%; }
  .today { display: none; }
  .content { padding: 28px 20px; }
  .project-card { grid-template-columns: 1fr auto; }
  .project-meta { grid-column: 1 / -1; grid-row: 2; }
  .status-pill { grid-column: 2; grid-row: 1; }
  .detail-link { grid-column: 2; grid-row: 2; justify-self: end; }
  .detail-grid { grid-template-columns: 1fr; }
  .safety-summary { display: none; }
  .responsive-heading { align-items: flex-start; gap: 14px; flex-direction: column; }
  .detail-completeness { width: 100%; }
  .workspace-filters { width: auto; margin-inline: 18px; flex-wrap: wrap; }
  .workspace-search { flex: 1 1 100%; }
}

@media (max-width: 720px) {
  .upload-telemetry { right: 14px; bottom: 14px; width: calc(100vw - 28px); }
  .upload-telemetry-heading { grid-template-columns: 32px minmax(0,1fr) auto; }
  .release-notes-body { max-height: 72vh; padding: 16px 18px 22px; }
  .release-notes-trigger .release-notes-version { display: none; }
}

@media (max-width: 600px) {
  .topbar { min-height: 66px; padding: 0 14px; }
  .topbar-actions { gap: 8px; }
  .release-notes-trigger { padding: 0 8px; font-size: 11px; gap: 5px; }
  .release-notes-trigger .release-notes-new { display: none; }
  .notification { display: grid; }
  .today { display: none; }
  .notification-center-body { padding: 15px 14px 20px; }
  .notification-item { grid-template-columns: 9px minmax(0,1fr); }
  .notification-open { display: none; }
  .global-search kbd { display: none; }
  .content { padding: 23px 14px 36px; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  .page-heading .primary { width: 100%; }
  .stats { grid-template-columns: 1fr 1fr; gap: 10px; }
  .stats article { min-height: 132px; padding: 17px; border-radius: 21px; }
  .stats article strong { font-size: 27px; }
  .panel-heading { padding: 20px 18px 15px; }
  .workspace-toolbar-heading, .members-roster-heading { top: 66px; }
  .filters { align-items: stretch; flex-wrap: wrap; padding: 13px 18px; }
  .search-field { width: 100%; }
  .filters select { flex: 1; width: auto; }
  .result-count { width: 100%; margin: 0; }
  .project-list { padding: 6px 9px 12px; }
  .project-card { gap: 12px; padding: 14px 10px; }
  .project-meta { grid-template-columns: 1fr 1fr; padding-left: 58px; }
  .project-identity h3 { max-width: 170px; }
  .detail-link { display: none; }
  .detail-hero { align-items: flex-start; flex-direction: column; gap: 24px; padding: 24px 19px; }
  .detail-title { align-items: flex-start; gap: 11px; }
  .detail-project-icon { width: 52px; height: 52px; border-radius: 17px; }
  .detail-title h1 { font-size: 23px; }
  .detail-hero > .primary { width: 100%; }
  .detail-hero-actions { align-items: stretch; flex-wrap: wrap; width: 100%; }
  .detail-hero-actions > * { flex: 1 1 auto; }
  .detail-completeness { width: 100%; }
  .detail-stats { grid-template-columns: 1fr 1fr; gap: 10px; }
  .detail-stats article { min-height: 105px; padding: 16px; }
  .company-list article { grid-template-columns: auto 1fr auto; }
  .company-list article > span:not(.company-icon) { display: none; }
  .workspace-tabs { margin-inline: -2px; }
  .workspace-tabs button { padding-inline: 12px; }
  .workspace-primary-tabs { grid-auto-columns: minmax(0,1fr); }
  .workspace-primary-tabs button { gap: 7px; padding-inline: 9px; }
  .workspace-primary-copy small { display: none; }
  .workspace-subtabs-label { display: none; }
  .workspace-filters { width: auto; margin-inline: 18px; }
  .workspace-search { flex: 1 1 100%; }
  .team-filter { flex: 1 1 100%; justify-content: space-between; }
  .workspace-status-filter { flex: 1 1 100%; justify-content: space-between; }
  .workspace-status-filter button { flex: 1 1 0; }
  .heading-actions { align-items: stretch; flex-wrap: wrap; width: 100%; }
  .heading-actions > * { flex: 1 1 auto; }
  .table-controls { justify-content: flex-start; flex-wrap: wrap; padding-inline: 18px; }
  .certificate-summary { flex-wrap: wrap; padding-inline: 18px; }
  .alert-group-row { align-items: flex-start; flex-direction: column; }
  .alert-group-row .alert-actions { align-self: flex-start; }
  .education-summary { grid-template-columns: repeat(2, minmax(120px,1fr)); padding-inline: 18px; }
  .safety-education-command { margin-inline: 18px; }
  .safety-education-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .education-session-grid,.education-level-fieldset { grid-template-columns: 1fr; }
  .education-question { grid-template-columns: 1fr; }
  .education-exam-identity { align-items: stretch; flex-direction: column; }
  .education-exam-identity label { min-width: 0; }
  .education-upload-guide, .education-upload-progress, .education-upload-result { margin-inline: 18px; }
  .photo-fields { grid-template-columns: 1fr; }
  .certificate-uploader { grid-template-columns: 1fr; }
  .verification-info { grid-template-columns: 1fr; }
  .verification-correction { grid-template-columns: 1fr; }
  .verification-correction-form { grid-template-columns: 1fr; }
  .verification-correction-actions { justify-content: stretch; }
  .verification-correction-actions button { flex: 1; }
  .verification-certificate-card { grid-template-columns: 1fr; }
  .official-links { grid-template-columns: 1fr; }
  .verification-certificate-image, .verification-empty-certificate { width: 100%; height: 180px; }
  .paste-zone { min-height: 190px; }
  .modal-backdrop { align-items: end; padding: 0; }
  .modal { max-height: 92vh; border-radius: 26px 26px 0 0; }
  .verification-modal { width: 100%; height: 92vh; max-height: 92vh; }
  .modal-heading { padding: 20px 18px 17px; }
  .modal-heading p { display: none; }
  .modal form { padding: 19px 18px 24px; }
  .education-session-modal,.education-exam-modal { width: 100%; height: 92vh; max-height: 92vh; }
  .education-session-form,.education-exam-form { padding: 19px 18px max(24px,env(safe-area-inset-bottom)); }
  .education-session-form > .modal-actions,.education-exam-form > .modal-actions { padding-bottom: max(8px,env(safe-area-inset-bottom)); }
  .wps-import-form { padding: 19px 18px 24px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .wide { grid-column: auto; }
  .modal-actions > button { flex: 1; }
  .account-project-grid { grid-template-columns: 1fr; }
  .import-failure-row, .import-update-row { grid-template-columns: 55px minmax(85px,.7fr) minmax(130px,1fr) minmax(170px,1.4fr); }
  .import-preview-body { padding: 14px 14px 18px; }
  .import-summary-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
  .import-summary-grid span { padding: 11px 12px; }
  .import-summary-grid span:last-child, .import-summary-grid button:last-child { grid-column: 1 / -1; }
  .import-error-summary { align-items: flex-start; flex-direction: column; gap: 9px; }
  .import-error-summary .text-button { align-self: flex-start; }
  .import-preview-table { max-height: none; overflow: visible; border: 0; background: transparent; }
  .import-preview-row.import-preview-head { display: none; }
  .import-preview-row { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 12px; min-height: 0; margin-top: 10px; padding: 12px; border: 1px solid rgba(132,153,174,.16); border-radius: 14px; background: rgba(255,255,255,.64); font-size: 12px; }
  .import-preview-row > span { display: flex; min-width: 0; flex-direction: column; gap: 3px; }
  .import-preview-row > span::before { content: attr(data-label); color: #7a8a9a; font-size: 12px; font-weight: 800; }
  .import-preview-row strong, .import-preview-row small, .import-action, .import-ok, .import-warning, .import-error { overflow: visible; text-overflow: clip; white-space: normal; }
  .import-preview-row > span:nth-child(6) { grid-column: 1 / -1; padding-top: 6px; border-top: 1px solid rgba(224,177,129,.2); }
  .import-preview-row > span:nth-child(6)::before { color: var(--warning); }
}

@media (max-width: 720px) {
  .upload-telemetry { right: 14px; bottom: 14px; width: calc(100vw - 28px); }
  .upload-telemetry-heading { grid-template-columns: 32px minmax(0,1fr) auto; }
  .release-notes-body { max-height: 72vh; padding: 16px 18px 22px; }
  .release-notes-trigger .release-notes-version { display: none; }
}

@media (max-width: 600px) {
  .auth-topbar { display: none; }
  .auth-screen:not(.loading-auth) { display: flex; align-items: flex-start; padding: 94px 16px 190px; }
  .auth-screen:not(.loading-auth) .auth-card { margin-bottom: 0; }
  .auth-screen.loading-auth { align-items: center; padding: 24px; }
  .auth-card { width: 100%; padding: 34px 24px 38px; border-radius: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* 外部动火申请入口与作业人员实名签字 */
.hot-work-entry-panel { margin: 0 0 18px; padding: 16px; border: 1px solid #dfe9e6; border-radius: 16px; background: linear-gradient(135deg, #f5fbf9, #fffaf5); }
.hot-work-entry-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.hot-work-signature-settings { margin-bottom: 16px; padding-bottom: 16px; border-bottom: 1px solid #dbe6e7; }
.hot-work-signature-settings [role="switch"] { flex-shrink: 0; }
.hot-work-entry-heading h3 { margin: 0; color: #315a5c; font-size: 15px; }
.hot-work-entry-heading p { margin: 5px 0 0; color: #7b8d8b; font-size: 11px; line-height: 1.6; }
.hot-work-entry-heading > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 7px; color: #347064; background: #e2f3ec; font-size: 10px; font-weight: 800; }
.hot-work-entry-list { display: grid; gap: 10px; margin-top: 13px; }
.hot-work-entry-card { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 13px; align-items: center; padding: 10px; border: 1px solid #e2ebe8; border-radius: 13px; background: #fff; }
.hot-work-entry-card.is-disabled { opacity: .65; }
.hot-work-entry-card > img { width: 76px; height: 76px; border-radius: 9px; background: #fff; }
.hot-work-entry-copy { min-width: 0; }
.hot-work-entry-copy > strong, .hot-work-entry-copy > small, .hot-work-entry-copy > code { display: block; }
.hot-work-entry-copy > strong { color: #4a5f60; font-size: 13px; }
.hot-work-entry-copy > small { margin-top: 3px; color: #899998; font-size: 10px; }
.hot-work-entry-copy > code { margin-top: 7px; overflow: hidden; color: #618081; text-overflow: ellipsis; white-space: nowrap; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; }
.hot-work-entry-actions { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; margin-top: 8px; }
.hot-work-entry-actions a { text-decoration: none; }
.hot-work-entry-empty { margin: 13px 0 0; padding: 12px; border-radius: 10px; color: #718783; background: rgba(255,255,255,.7); font-size: 11px; }
.hot-work-entry-modal { width: min(560px, calc(100vw - 32px)); }
.hot-work-entry-form { display: grid; gap: 15px; }
.hot-work-entry-form > label { display: grid; gap: 7px; }
.hot-work-entry-form > label > span { color: #5d6d76; font-size: 12px; font-weight: 800; }
.hot-work-entry-form > label > span b { color: #b85a30; }
.hot-work-entry-form input, .hot-work-entry-form select { min-height: 42px; padding: 0 12px; border: 1px solid #d9e2e5; border-radius: 10px; outline: 0; color: #4f606c; background: #fff; }
.hot-work-entry-form input:focus, .hot-work-entry-form select:focus { border-color: #6c9ba0; box-shadow: 0 0 0 3px rgba(108,155,160,.12); }
.hot-work-entry-form-note { margin: 0; padding: 11px 12px; border-left: 3px solid #c67448; border-radius: 0 9px 9px 0; color: #806b5d; background: #fff6ef; font-size: 11px; line-height: 1.65; }
.hot-work-wechat-panel { margin: 0 0 18px; padding: 16px; border: 1px solid #d9e7e5; border-radius: 16px; background: linear-gradient(135deg, #f4fbfb, #fbfaf6); }
.hot-work-wechat-requests, .hot-work-wechat-binding-list { display: grid; gap: 9px; margin-top: 13px; }
.hot-work-wechat-request, .hot-work-wechat-binding-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px; border: 1px solid #e0ebe9; border-radius: 12px; background: rgba(255,255,255,.88); }
.hot-work-wechat-request > div:first-child, .hot-work-wechat-binding-copy { min-width: 0; }
.hot-work-wechat-request strong, .hot-work-wechat-binding-copy strong { color: #315a5c; font-size: 12px; }
.hot-work-wechat-request p, .hot-work-wechat-binding-copy p { margin: 4px 0 0; color: #637d7c; font-size: 11px; }
.hot-work-wechat-request small, .hot-work-wechat-binding-copy small { display: block; margin-top: 4px; color: #899998; font-size: 10px; line-height: 1.5; }
.hot-work-wechat-request-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 7px; justify-content: flex-end; }
.hot-work-wechat-binding-card { justify-content: flex-start; }
.hot-work-wechat-binding-card > .danger-text { margin-left: auto; flex: 0 0 auto; }
.hot-work-wechat-avatar { display: grid; flex: 0 0 auto; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #176b69; background: #d9f0eb; font-weight: 800; }
.hot-work-wechat-binding-copy { flex: 1 1 auto; }
.hot-work-wechat-binding-modal { width: min(560px, calc(100vw - 32px)); }
.hot-work-wechat-binding-modal form { display: grid; gap: 15px; }
.hot-work-wechat-binding-modal form > label { display: grid; gap: 7px; }
.hot-work-wechat-binding-modal form > label > span { color: #5d6d76; font-size: 12px; font-weight: 800; }
.hot-work-wechat-binding-modal form > label > span b { color: #b85a30; }
.hot-work-wechat-binding-modal select { min-height: 42px; padding: 0 12px; border: 1px solid #d9e2e5; border-radius: 10px; outline: 0; color: #4f606c; background: #fff; }
.hot-work-wechat-binding-modal select:focus { border-color: #6c9ba0; box-shadow: 0 0 0 3px rgba(108,155,160,.12); }
.hot-work-wechat-bind-preview { display: flex; align-items: center; gap: 11px; margin-bottom: 15px; padding: 12px; border: 1px solid #e1ecea; border-radius: 12px; background: #f7fbfa; }
.hot-work-wechat-bind-preview strong { color: #315a5c; font-size: 13px; }
.hot-work-wechat-bind-preview p, .hot-work-wechat-bind-preview small { display: block; margin: 4px 0 0; color: #7a8f8d; font-size: 10px; }
.hot-work-waiting-action { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 0 9px; border-radius: 8px; color: #936234; background: #fff4dc; font-size: 11px; }
.hot-work-external-panel { margin-top: 15px; padding: 13px; border: 1px solid #eadbd2; border-radius: 13px; background: #fffaf7; }
.hot-work-external-heading { display: flex; justify-content: space-between; gap: 10px; align-items: center; color: #775445; font-size: 11px; }
.hot-work-external-heading > span { padding: 5px 7px; border-radius: 7px; color: #a06043; background: #fff0e8; font-size: 10px; font-weight: 800; }
.hot-work-external-heading > span.complete { color: #287456; background: #e4f4eb; }
.hot-work-signature-qr-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 11px; }
.hot-work-signature-qr-card, .hot-work-field-qr { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 8px; border: 1px solid #ecdfd7; border-radius: 10px; background: #fff; }
.hot-work-signature-qr-card > img { width: 64px; height: 64px; flex: 0 0 auto; }
.hot-work-signature-qr-card > div, .hot-work-field-qr > div { display: grid; gap: 3px; min-width: 0; }
.hot-work-signature-qr-card b, .hot-work-field-qr b { color: #5a493f; font-size: 12px; }
.hot-work-signature-qr-card small, .hot-work-field-qr small { color: #9a8276; font-size: 10px; }
.hot-work-signature-qr-card a, .hot-work-field-qr a { color: #a45532; font-size: 10px; text-decoration: none; }
.hot-work-signature-qr-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.hot-work-signature-qr-actions a, .hot-work-signature-qr-actions button { display: inline-flex; min-height: 28px; padding: 0 9px; align-items: center; justify-content: center; border: 1px solid #ead8ce; border-radius: 7px; color: #8d4f32; background: #fff8f4; font: inherit; font-size: 10px; font-weight: 800; cursor: pointer; }
.hot-work-signature-qr-actions button { color: #fff; border-color: #4f7792; background: #4f7792; }
.hot-work-signature-qr-actions .hot-work-copy-link-button { color: #4f7792; border-color: #b9ccd8; background: #f4f8fb; }
.hot-work-signature-qr-actions a:hover { background: #fff1e9; }
.hot-work-signature-qr-actions button:hover { background: #416b87; }
.hot-work-signature-qr-actions .hot-work-copy-link-button:hover { background: #e7f0f5; }
.hot-work-signature-qr-actions a:focus-visible, .hot-work-signature-qr-actions button:focus-visible { outline: 3px solid rgba(79,119,146,.2); outline-offset: 2px; }
.hot-work-field-qr { margin-top: 9px; }
.hot-work-field-qr > img { width: 70px; height: 70px; flex: 0 0 auto; }
.hot-work-field-qr-pending { margin: 9px 0 0; padding: 10px; border-radius: 9px; color: #916f50; background: #fff5e6; font-size: 10px; line-height: 1.5; }
.hot-work-fire-confirm { display: flex !important; flex-direction: row !important; gap: 10px; align-items: flex-start; padding: 12px 13px; border: 1px solid #cce4d7; border-radius: 11px; color: #2c6c53; background: #eff9f2; cursor: pointer; }
.hot-work-fire-confirm input { flex: 0 0 auto; margin-top: 3px; accent-color: #29805e; }
.hot-work-fire-confirm span { display: grid; gap: 3px; }
.hot-work-fire-confirm strong { font-size: 12px; }
.hot-work-fire-confirm small { color: #658477; font-size: 10px; line-height: 1.55; }
@media (max-width: 640px) {
  .hot-work-wechat-request, .hot-work-wechat-binding-card { align-items: flex-start; flex-direction: column; }
  .hot-work-wechat-request-actions { justify-content: flex-start; }
  .hot-work-wechat-binding-card > .danger-text { margin-left: 0; }
}
@media (max-width: 720px) {
  .hot-work-entry-heading { flex-direction: column; }
  .hot-work-signature-qr-list { grid-template-columns: 1fr; }
}

/* 2026-08 education workspace hierarchy refresh */
.action-menu { position: relative; flex: 0 0 auto; }
.action-menu > summary { display: inline-flex; align-items: center; justify-content: center; min-height: 41px; list-style: none; cursor: pointer; white-space: nowrap; }
.action-menu > summary::-webkit-details-marker { display: none; }
.action-menu[open] > summary { box-shadow: 0 0 0 3px rgba(73,105,135,.14); }
.action-menu-popover { position: absolute; top: calc(100% + 8px); right: 0; z-index: 60; display: grid; min-width: 190px; overflow: hidden; padding: 7px; border: 1px solid rgba(132,153,174,.2); border-radius: 14px; background: rgba(250,252,254,.98); box-shadow: 0 18px 38px rgba(57,80,101,.18); backdrop-filter: blur(18px); }
.action-menu-popover button, .action-menu-popover label { display: flex; min-height: 40px; padding: 9px 11px; align-items: flex-start; justify-content: center; flex-direction: column; gap: 2px; border: 0; border-radius: 9px; color: var(--primary); background: transparent; font: inherit; font-size: 12px; font-weight: 700; text-align: left; cursor: pointer; white-space: nowrap; }
.action-menu-popover button:hover, .action-menu-popover label:hover { background: #edf3f7; }
.action-menu-popover small { color: #8b99a7; font-size: 11px; font-weight: 500; }
.action-menu-popover .danger-text, .action-menu-danger button { color: #a33e47; }
.action-menu-popover .danger-text:hover, .action-menu-danger button:hover { background: #f9e8e9; }

.detail-hero { min-height: 132px; padding: 22px 26px; gap: 18px; overflow: visible; border-radius: 24px; }
.detail-title { flex: 1 1 480px; min-width: 0; }
.detail-title > div { min-width: 0; }
.detail-project-icon { width: 54px; height: 54px; border-radius: 17px 17px 21px 14px; }
.detail-project-icon svg { width: 24px; height: 24px; }
.detail-title h1 { margin: 6px 0 4px; font-size: clamp(22px,2.35vw,29px); line-height: 1.2; }
.detail-title p { line-height: 1.55; }
.detail-completeness { min-width: 190px; padding: 8px 11px; }
.completeness-ring { width: 38px; height: 38px; }
.detail-hero-actions { flex: 0 0 auto; }
.detail-orb { display: none; }
.project-more-menu .project-menu-edit { display: none; }

.education-heading .heading-actions { flex-wrap: nowrap; }
.education-default-actions { width: auto; }
.education-upload-menu .action-menu-popover { left: 0; right: auto; min-width: 245px; }
.education-upload-menu .education-photo-upload { align-items: flex-start; }
.education-summary-card { padding-right: 14px; }
.education-summary-card.active::before { content: none; }
.education-summary-card.active { transform: translateY(-1px); }

.education-selection-toolbar { position: sticky; top: 138px; z-index: 18; display: flex; min-height: 58px; margin: 0 24px 15px; padding: 9px 11px; align-items: center; gap: 8px; border: 1px solid rgba(82,122,153,.24); border-radius: 15px; background: rgba(240,246,250,.97); box-shadow: 0 12px 28px rgba(66,91,114,.14); backdrop-filter: blur(18px); }
.education-selection-toolbar .selection-count { flex: 0 0 auto; padding: 0 8px 0 4px; color: var(--primary); font-size: 12px; white-space: nowrap; }
.education-selection-toolbar .selection-count strong { color: #345e7e; font-size: 17px; }
.education-selection-toolbar .selection-clear { min-height: 34px; padding: 0 9px; border: 0; border-radius: 9px; color: #5f7b92; background: transparent; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; white-space: nowrap; }
.education-selection-toolbar .selection-clear:hover { background: #e3edf3; }
.education-selection-more { margin-left: auto; }
.education-selection-more .action-menu-popover { min-width: 210px; }
.mobile-selection-menu-item { display: none !important; }
.action-menu-danger .neutral-menu-item { color: var(--primary); }

.education-list-meta { display: flex; min-height: 54px; padding: 0 24px 10px; align-items: center; justify-content: space-between; gap: 14px; }
.education-list-meta .table-controls { padding: 0; }
.education-result-summary { display: flex; min-width: 0; align-items: center; gap: 10px; color: #718499; font-size: 12px; }
.education-result-summary strong { overflow: hidden; color: var(--text-secondary); text-overflow: ellipsis; white-space: nowrap; }
.education-result-summary button { flex: 0 0 auto; min-height: 30px; padding: 0 9px; border: 0; border-radius: 9px; color: #4d7190; background: #e7eff4; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }

.education-table { margin: 0 24px 14px; overflow: auto; border: 1px solid rgba(132,153,174,.17); border-radius: 15px; background: rgba(250,252,254,.66); }
.education-table:focus-visible { outline: 3px solid rgba(73,105,135,.25); outline-offset: 3px; }
.education-native-table { width: 100%; min-width: 1040px; border-spacing: 0; border-collapse: separate; color: #64768a; font-size: 12px; }
.education-native-table th, .education-native-table td { min-height: 48px; padding: 11px 12px; border-bottom: 1px solid rgba(132,153,174,.13); text-align: left; vertical-align: middle; }
.education-native-table th { position: sticky; top: 0; z-index: 2; height: 44px; color: #718398; background: rgba(237,243,248,.98); font-size: 12px; font-weight: 800; white-space: nowrap; }
.education-native-table th:first-child, .education-native-table td:first-child { width: 44px; text-align: center; }
.education-native-table th:nth-child(2) { width: 155px; }
.education-native-table th:nth-child(3) { width: 190px; }
.education-native-table th:nth-child(4) { width: 105px; }
.education-native-table th:nth-child(5) { width: 120px; }
.education-native-table th:nth-child(6), .education-native-table th:nth-child(7) { width: 115px; text-align: center; }
.education-native-table th:nth-child(8) { width: 90px; }
.education-native-table th:nth-child(9) { width: 72px; }
.education-native-table tr:last-child td { border-bottom: 0; }
.education-native-table tbody tr { transition: background var(--transition); }
.education-native-table tbody tr:hover { background: rgba(237,243,248,.64); }
.education-native-table tbody tr.selected { background: rgba(222,235,244,.72); }
.education-native-table .education-photo-status { align-items: center; }
.education-native-table .education-company b, .education-native-table .education-company small { max-width: 180px; }
.education-state-control { white-space: nowrap; }
.education-mobile-list { display: none; }

@media (max-width: 980px) {
  .detail-hero { flex-wrap: wrap; }
  .detail-title { flex-basis: calc(100% - 230px); }
  .detail-completeness { margin-left: auto; }
  .detail-hero-actions { width: 100%; justify-content: flex-end; }
  .education-selection-toolbar { overflow-x: auto; }
}

@media (max-width: 760px) {
  body:has(.education-workspace-panel) .global-search { display: none; }
  .detail-hero { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 18px; border-radius: 21px; }
  .detail-title { grid-column: 1 / -1; width: 100%; }
  .detail-project-icon { width: 46px; height: 46px; }
  .detail-title h1 { margin-top: 5px; font-size: 20px; }
  .detail-title p { font-size: 12px; }
  .detail-completeness { grid-column: 1 / -1; width: 100%; min-width: 0; margin: 0; }
  .detail-completeness .completeness-ring { width: auto; height: auto; border: 0; border-radius: 0; }
  .detail-completeness .completeness-ring b { font-size: 14px; }
  .detail-hero-actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) auto; width: 100%; }
  .detail-hero-actions > .primary { width: 100%; }
  .project-edit-button { display: none; }
  .project-more-menu .project-menu-edit { display: flex; }
  .project-more-menu .action-menu-popover { right: 0; left: auto; }

  .workspace { margin-top: 12px; }
  .workspace-navigation { margin-bottom: 10px; }
  .workspace-tabs { scroll-padding-inline: 8px; }
  .workspace-tabs button[aria-selected="true"] { scroll-margin-inline: 8px; }
  .education-heading { position: static; }
  .education-heading .heading-actions { align-items: stretch; flex-direction: row; flex-wrap: nowrap; }
  .education-heading .heading-actions > * { flex: 1 1 auto; }
  .education-default-actions .education-upload-menu { flex: 0 0 105px; }
  .education-default-actions > button { min-width: 0; padding-inline: 8px; font-size: 12px; white-space: nowrap; }
  .education-upload-menu > summary { width: 100%; }
  .education-upload-menu .action-menu-popover { left: 0; right: auto; width: min(290px,calc(100vw - 58px)); }
  .education-upload-guide { line-height: 1.55; }
  .education-summary { gap: 8px; }
  .education-summary-card { min-height: 88px; padding: 11px 12px; }
  .education-summary-card.active { transform: none; }

  .education-selection-toolbar { position: fixed; inset: auto 12px 12px; z-index: 80; display: grid; grid-template-columns: auto minmax(0,1fr) auto auto; min-height: 62px; margin: 0; padding: 9px; overflow: visible; border-color: rgba(64,103,132,.3); border-radius: 17px; box-shadow: 0 18px 42px rgba(43,65,83,.25); }
  .education-selection-toolbar .selection-count { padding: 9px 6px; border-radius: 10px; background: #f0f6fa; }
  .education-selection-toolbar .selection-clear { display: none; }
  .education-selection-toolbar .compact-button { min-width: 0; padding-inline: 9px; font-size: 12px; }
  .education-selection-toolbar .education-photo-upload { width: 100%; }
  .education-selection-toolbar .mark-pending-action { display: none; }
  .education-selection-more { margin-left: 0; }
  .education-selection-more .action-menu-popover { top: auto; right: 0; bottom: calc(100% + 8px); }
  .mobile-selection-menu-item { display: flex !important; }
  .education-workspace-panel { padding-bottom: 84px; }

  .education-list-meta { align-items: flex-start; flex-direction: column; padding-inline: 18px; }
  .education-result-summary { width: 100%; justify-content: space-between; }
  .education-result-summary strong { white-space: normal; line-height: 1.5; }
  .education-list-meta .table-controls { width: 100%; }
  .education-table { display: none; }
  .education-mobile-list { display: grid; gap: 10px; padding: 0 18px 15px; }
  .education-mobile-list article { position: relative; display: grid; gap: 10px; padding: 14px; border: 1px solid rgba(132,153,174,.18); border-radius: 15px; background: rgba(250,252,254,.78); box-shadow: 0 8px 20px rgba(75,98,119,.08); }
  .education-mobile-list article.selected { border-color: rgba(75,115,145,.46); background: #edf5f9; box-shadow: 0 0 0 2px rgba(75,115,145,.12), 0 10px 22px rgba(75,98,119,.1); }
  .education-mobile-person { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; }
  .education-mobile-person > span:nth-child(2) { display: grid; min-width: 0; gap: 2px; }
  .education-mobile-person .status-pill { grid-column: 3; grid-row: 1; min-width: 64px; width: auto; }
  .education-mobile-person strong { overflow: hidden; color: #3f556b; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
  .education-mobile-person small { color: var(--muted); font-size: 12px; }
  .education-mobile-list article > p { display: grid; gap: 3px; margin: 0; color: var(--text-secondary); font-size: 12px; line-height: 1.5; }
  .education-mobile-list article > p small { color: var(--muted); font-size: 12px; }
  .education-mobile-meta { display: flex; flex-wrap: wrap; gap: 7px 14px; color: #7a8c9e; font-size: 12px; }
  .education-mobile-statuses { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 9px; border-top: 1px solid rgba(132,153,174,.13); }
  .education-mobile-statuses .education-state-control { display: inline-flex; min-height: 30px; padding: 0 8px; align-items: center; gap: 6px; border: 0; border-radius: 8px; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
  .education-mobile-statuses .education-state-control i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
  .education-state-control.completed { color: var(--success); background: #e8f5ed; }
  .education-state-control.pending { color: #a9574e; background: #fbeceb; }
  .education-mobile-edit { justify-self: end; min-height: 30px; padding: 0 9px; border: 0; border-radius: 9px; color: #55758f; background: #e8f0f5; font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
}

@media (max-width: 420px) {
  .content { padding-inline: 10px; }
  .detail-breadcrumb strong { max-width: 46vw; }
  .detail-hero { padding: 15px; }
  .detail-title { gap: 9px; }
  .detail-project-icon { display: none; }
  .workspace-tabs { margin-inline: 0; }
  .workspace-primary-tabs button { grid-template-columns: minmax(0,1fr) auto; gap: 4px; text-align: center; }
  .workspace-primary-tab-icon { display: none; }
  .workspace-primary-copy { justify-items: center; }
  .workspace-primary-tabs button b { margin-left: 0; }
  .workspace-filters { margin-inline: 14px; }
  .education-heading, .panel-heading.education-heading { padding-inline: 14px; }
  .education-upload-guide, .education-upload-progress, .education-upload-result { margin-inline: 14px; }
  .education-summary { padding-inline: 14px; }
  .safety-education-command { margin-inline: 14px; padding: 14px; }
  .safety-education-metrics article { padding: 10px; }
  .education-session-levels { grid-template-columns: 1fr; }
  .education-exam-result ul { flex-direction: column; }
  .education-list-meta, .education-mobile-list { padding-inline: 14px; }
}

/* 风险与隐患闭环管理 */
.hazard-heading { padding-bottom: 15px; }
.hazard-summary-grid { display: grid; grid-template-columns: repeat(6,minmax(112px,1fr)); gap: 10px; padding: 0 24px 18px; overflow-x: auto; }
.hazard-summary-grid button { position: relative; display: grid; min-height: 92px; padding: 13px 14px; align-content: start; gap: 3px; overflow: hidden; border: 1px solid rgba(130,151,171,.17); border-radius: 15px; color: #65788c; background: rgba(246,249,251,.82); box-shadow: 0 7px 18px rgba(73,96,117,.07); font: inherit; text-align: left; transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition); }
.hazard-summary-grid button::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: #7891a5; }
.hazard-summary-grid button:hover, .hazard-summary-grid button.active { border-color: rgba(72,108,137,.35); box-shadow: 0 10px 22px rgba(73,96,117,.12); transform: translateY(-2px); }
.hazard-summary-grid button.level-red::before, .hazard-summary-grid button.is-overdue::before { background: #b94349; }
.hazard-summary-grid button.level-orange::before { background: #d4792f; }
.hazard-summary-grid button.closure-rate::before { background: #2d8062; }
.hazard-summary-grid button b { color: #334b61; font-size: 24px; line-height: 1.15; }
.hazard-summary-grid button small { color: #91a0ae; font-size: 12px; }
.hazard-filterbar { display: grid; grid-template-columns: minmax(260px,1fr) 170px 170px; gap: 10px; padding: 0 24px 17px; }
.hazard-filterbar > label:not(.workspace-search) { display: flex; min-height: 43px; padding: 0 10px; align-items: center; gap: 8px; border: 1px solid rgba(255,255,255,.82); border-radius: 14px; color: #8392a2; background: #edf3f8; box-shadow: inset 3px 3px 8px rgba(93,114,135,.07), inset -4px -4px 9px rgba(255,255,255,.82); font-size: 12px; white-space: nowrap; }
.hazard-filterbar select { min-width: 0; flex: 1; border: 0; outline: 0; color: #4f6378; background: transparent; font: inherit; font-size: 12px; }
.hazard-list { display: grid; gap: 12px; padding: 0 24px 24px; }
.hazard-card { --hazard-tone: #d9a02c; position: relative; display: grid; grid-template-columns: minmax(0,1fr) 250px; gap: 18px; padding: 18px; overflow: hidden; border: 1px solid rgba(132,153,174,.18); border-left: 5px solid var(--hazard-tone); border-radius: 17px; background: rgba(250,252,254,.86); box-shadow: 0 9px 24px rgba(72,96,118,.08); }
.hazard-card.hazard-level-red { --hazard-tone: #b83f47; }
.hazard-card.hazard-level-orange { --hazard-tone: #d5762d; }
.hazard-card.hazard-level-yellow { --hazard-tone: #d4a12b; }
.hazard-card.hazard-level-blue { --hazard-tone: #4f83ae; }
.hazard-card.is-closed { --hazard-tone: #61917f; opacity: .84; }
.hazard-card-main { min-width: 0; }
.hazard-card-title { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.hazard-card-title h3 { flex: 1 1 260px; margin: 0; color: #344c61; font-size: 16px; line-height: 1.4; }
.hazard-level-badge, .hazard-status-badge, .hazard-overdue-badge { display: inline-flex; min-height: 24px; padding: 0 8px; align-items: center; border-radius: 8px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.hazard-level-badge { color: color-mix(in srgb,var(--hazard-tone) 82%,#27394a); background: color-mix(in srgb,var(--hazard-tone) 13%,#fff); }
.hazard-status-badge { color: #5f7184; background: #e9eff3; }
.hazard-status-badge.status-review { color: #8a5a1c; background: #fff0d9; }
.hazard-status-badge.status-closed { color: #39705b; background: #e3f1ea; }
.hazard-overdue-badge { color: #a6363e; background: #f9e4e6; }
.hazard-card-main > p { margin: 11px 0 13px; color: #65788a; font-size: 12px; line-height: 1.7; }
.hazard-meta { display: grid; grid-template-columns: repeat(5,minmax(100px,1fr)); gap: 8px; }
.hazard-meta > span { display: grid; min-width: 0; gap: 3px; padding: 9px 10px; border-radius: 10px; background: rgba(236,242,246,.72); }
.hazard-meta small { color: var(--muted); font-size: 11px; }
.hazard-meta b { overflow: hidden; color: #4b6176; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.hazard-meta .danger b { color: #b03942; }
.hazard-measures { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 10px; margin-top: 11px; padding: 10px 12px; border-radius: 11px; color: #5c7184; background: #eef4f7; font-size: 12px; line-height: 1.6; }
.hazard-measures strong { color: #3f6179; white-space: nowrap; }
.hazard-result { display: grid; gap: 7px; margin-top: 10px; }
.hazard-result span { display: grid; grid-template-columns: 62px minmax(0,1fr); gap: 8px; color: #5f7488; font-size: 12px; line-height: 1.55; }
.hazard-result strong { color: #3d705d; }
.hazard-history { margin-top: 11px; color: #708295; font-size: 12px; }
.hazard-history summary { cursor: pointer; font-weight: 700; }
.hazard-history ol { display: grid; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.hazard-history li { display: grid; grid-template-columns: 80px 180px minmax(0,1fr); gap: 8px; padding: 8px 10px; border-radius: 9px; background: #f0f4f7; }
.hazard-history li b { color: #47657e; }
.hazard-history li small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hazard-card-side { display: grid; align-content: space-between; gap: 13px; min-width: 0; }
.hazard-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hazard-photos button, .hazard-photos > span { position: relative; display: grid; place-items: center; min-height: 104px; padding: 0; overflow: hidden; border: 1px dashed rgba(122,145,166,.28); border-radius: 12px; color: #8494a4; background: #edf2f5; font: inherit; }
.hazard-photos img { width: 100%; height: 104px; object-fit: cover; }
.hazard-photos button small { position: absolute; inset: auto 5px 5px; padding: 3px 6px; border-radius: 6px; color: white; background: rgba(31,48,63,.7); font-size: 11px; }
.hazard-photos > span small { padding: 8px; font-size: 11px; text-align: center; }
.hazard-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 7px; }
.hazard-actions .text-button { min-height: 34px; padding: 0 8px; border: 0; color: #58778f; background: transparent; font-size: 12px; }
.hazard-empty { padding-bottom: 30px; }
.hazard-modal { width: min(780px,calc(100vw - 32px)); }
.hazard-modal textarea, .hazard-action-modal textarea { width: 100%; resize: vertical; border: 1px solid rgba(126,148,169,.2); border-radius: 12px; outline: 0; padding: 10px 12px; color: #344b60; background: #edf3f7; box-shadow: inset 2px 2px 7px rgba(88,111,132,.08), inset -3px -3px 8px #fff; font: inherit; font-size: 12px; line-height: 1.6; }
.hazard-modal textarea:focus, .hazard-action-modal textarea:focus { border-color: rgba(73,105,135,.38); box-shadow: 0 0 0 3px rgba(73,105,135,.1); }
.hazard-form { padding: 0 25px 24px; overflow-y: auto; }
.hazard-photo-field { gap: 9px; }
.hazard-photo-picker { position: relative; display: flex; min-height: 42px; padding: 0 12px; align-items: center; border: 1px dashed rgba(77,111,139,.35); border-radius: 11px; color: #55738c; background: #e8f0f5; cursor: pointer; }
.hazard-photo-picker input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.hazard-photo-picker b { font-size: 12px; }
.hazard-photo-field > img { width: min(240px,100%); max-height: 160px; border-radius: 11px; object-fit: cover; box-shadow: 0 8px 18px rgba(55,78,98,.14); }
.hazard-action-modal { width: min(560px,calc(100vw - 32px)); }
.hazard-action-form { display: grid; gap: 15px; padding: 0 25px 24px; overflow-y: auto; }
.hazard-action-form > label { display: grid; gap: 7px; color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.hazard-action-form label > span b { color: var(--danger); }
.hazard-approval-note { padding: 13px 14px; border-radius: 12px; color: #43725f; background: #e9f4ef; }
.hazard-approval-note strong { font-size: 12px; }
.hazard-approval-note p { margin: 4px 0 0; font-size: 12px; }

@media (max-width: 1180px) {
  .hazard-summary-grid { grid-template-columns: repeat(6,132px); }
  .hazard-card { grid-template-columns: minmax(0,1fr) 210px; }
  .hazard-meta { grid-template-columns: repeat(3,minmax(100px,1fr)); }
}

@media (max-width: 760px) {
  .hazard-heading { align-items: stretch; }
  .hazard-heading .heading-actions, .hazard-heading .primary { width: 100%; }
  .hazard-summary-grid, .hazard-filterbar, .hazard-list { padding-inline: 18px; }
  .hazard-summary-grid { grid-template-columns: repeat(6,126px); }
  .hazard-filterbar { grid-template-columns: 1fr 1fr; }
  .hazard-filterbar .workspace-search { grid-column: 1 / -1; width: 100%; }
  .hazard-card { grid-template-columns: 1fr; padding: 15px; }
  .hazard-meta { grid-template-columns: 1fr 1fr; }
  .hazard-card-side { gap: 11px; }
  .hazard-photos button, .hazard-photos > span { min-height: 130px; }
  .hazard-photos img { height: 130px; }
  .hazard-actions { justify-content: stretch; }
  .hazard-actions button { flex: 1 1 auto; }
  .hazard-history li { grid-template-columns: 80px minmax(0,1fr); }
  .hazard-history li small { grid-column: 1 / -1; white-space: normal; }
}

@media (max-width: 420px) {
  .hazard-summary-grid, .hazard-filterbar, .hazard-list { padding-inline: 14px; }
  .hazard-filterbar { grid-template-columns: 1fr; }
  .hazard-filterbar .workspace-search { grid-column: auto; }
  .hazard-meta { grid-template-columns: 1fr; }
  .hazard-result span, .hazard-measures { grid-template-columns: 1fr; }
}
/* 动火作业票闭环管理 */
.safety-subtabs { border-top-color: #dfe8ec; }

.hot-work-heading h2 { color: var(--heading); }


.hot-work-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
  margin: 18px 0;
}

.hot-work-summary-grid button {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fffdfb;
  color: #6f5a4f;
  text-align: left;
  cursor: pointer;
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.hot-work-summary-grid button:hover,
.hot-work-summary-grid button.active {
  border-color: #cf6d3c;
  box-shadow: 0 8px 24px rgba(110, 61, 37, .11);
  transform: translateY(-1px);
}

.hot-work-summary-grid button b {
  display: block;
  margin: 8px 0 3px;
  color: var(--heading);
  font-size: 28px;
  line-height: 1;
}

.hot-work-summary-grid button small { display: block; color: var(--muted); }
.hot-work-summary-grid .pending { border-top: 3px solid var(--warning); }
.hot-work-summary-grid .approved { border-top: 3px solid #3579b8; }
.hot-work-summary-grid .working { border-top: 3px solid #258766; }
.hot-work-summary-grid .review { border-top: 3px solid #7657b4; }
.hot-work-summary-grid .expired { border-top: 3px solid var(--danger); }

.hot-work-filterbar {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) 180px 200px;
  gap: 12px;
  align-items: end;
  padding: 14px;
  margin-bottom: 16px;
  border: 1px solid #ede4de;
  border-radius: 16px;
  background: #faf7f4;
}

.hot-work-filterbar > label:not(.workspace-search) { display: grid; gap: 6px; }
.hot-work-filterbar > label > span { color: var(--text-secondary); font-size: 12px; font-weight: 700; }

.hot-work-list { display: grid; gap: 16px; }
.hot-work-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  overflow: hidden;
  border: 1px solid #e9ded6;
  border-left: 5px solid #d98748;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(57, 39, 28, .07);
}
.hot-work-card.level-special { border-left-color: var(--danger); }
.hot-work-card.level-level1 { border-left-color: var(--accent); }
.hot-work-card.level-level2 { border-left-color: var(--warning); }
.hot-work-card.level-level3 { border-left-color: var(--success); }
.hot-work-card.status-closed,
.hot-work-card.status-cancelled { opacity: .82; border-left-color: #839087; }
.hot-work-card.is-expired { border-color: #efc3be; border-left-color: var(--danger); }

.hot-work-card-head {
  grid-column: 1 / -1;
  display: flex;
  gap: 9px;
  align-items: flex-start;
  padding: 18px 20px;
  border-bottom: 1px solid #eee5df;
  background: #fffaf6;
}
.hot-work-card-head > div { min-width: 0; margin-left: 4px; }
.hot-work-card-head h3 { margin: 3px 0 4px; color: var(--heading); font-size: 20px; }
.hot-work-card-head p { margin: 0; color: var(--text-secondary); }
.hot-work-card-head > div > small { color: var(--muted); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.hot-work-level,
.hot-work-status,
.hot-work-expired {
  flex: 0 0 auto;
  padding: 5px 9px;
  border-radius: 999px;
  background: #f3e6dc;
  color: #9a4e28;
  font-size: 12px;
  font-weight: 800;
}
.hot-work-status { background: #e8f0f6; color: var(--primary-deep); }
.hot-work-expired { background: var(--tint-danger); color: var(--danger); }

.hot-work-card-body { min-width: 0; padding: 18px 20px; }
.hot-work-meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 15px 18px;
}
.hot-work-meta span { min-width: 0; }
.hot-work-meta small { display: block; margin-bottom: 4px; color: var(--muted); font-size: 12px; }
.hot-work-meta b { display: block; overflow-wrap: anywhere; color: var(--foreground); font-size: 13px; }

.hot-work-control-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.hot-work-control-strip span { padding: 8px 11px; border-radius: 10px; background: var(--tint-info); color: var(--text-secondary); font-size: 12px; }
.hot-work-control-strip span.complete { background: var(--tint-success); color: var(--success); }
.hot-work-control-strip span.warning { background: var(--tint-danger); color: var(--danger); }
.hot-work-control-strip b { margin-right: 3px; font-size: 14px; }

.hot-work-warning,
.hot-work-completion {
  display: grid;
  gap: 5px;
  margin-top: 13px;
  padding: 12px 14px;
  border-radius: 12px;
  background: #fff1ef;
  color: #8f3a33;
  font-size: 13px;
}
.hot-work-completion { background: var(--tint-success); color: #2d6651; }
.hot-work-history { margin-top: 14px; }

.hot-work-card-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
  justify-content: space-between;
  padding: 18px;
  border-left: 1px solid #eee5df;
  background: #fcfaf8;
}
.hot-work-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hot-work-photos button,
.hot-work-photos > span {
  display: grid;
  place-items: center;
  min-height: 88px;
  overflow: hidden;
  padding: 0;
  border: 1px solid #e5d9d1;
  border-radius: 11px;
  background: #f6f1ed;
  color: #8b776c;
}
.hot-work-photos button { position: relative; cursor: pointer; }
.hot-work-photos img { width: 100%; height: 88px; object-fit: cover; }
.hot-work-photos button small { position: absolute; right: 5px; bottom: 5px; padding: 3px 6px; border-radius: 7px; background: rgba(37, 50, 70, .78); color: #fff; }
.hot-work-photos > span small { padding: 8px; text-align: center; }
.hot-work-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.hot-work-actions button { flex: 1 1 94px; }
.hot-work-actions .hot-work-certificate-button { flex-basis: 100%; }
.hot-work-actions .hot-work-signature-button { flex-basis: 100%; }

.hot-work-certificates-modal { width: min(920px, calc(100vw - 32px)); max-height: min(92vh, 920px); overflow: hidden; }
.hot-work-certificates-body { display: grid; gap: 14px; max-height: calc(92vh - 160px); overflow: auto; padding: 18px 22px 20px; background: var(--surface); }
.hot-work-certificate-person { overflow: hidden; border: 1px solid #e3e9ed; border-radius: 15px; background: #fff; }
.hot-work-certificate-person-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 15px; border-bottom: 1px solid #edf0f2; background: #f8fafb; }
.hot-work-certificate-person-head > span { display: grid; min-width: 0; gap: 3px; }
.hot-work-certificate-person-head strong { color: var(--heading); font-size: 14px; }
.hot-work-certificate-person-head small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.hot-work-certificate-person-head > b { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; font-size: 12px; }
.hot-work-certificate-person-head > b.available { color: #276449; background: #e6f4eb; }
.hot-work-certificate-person-head > b.missing { color: #9a4c3f; background: #fcebe8; }
.hot-work-certificate-list { display: grid; gap: 12px; padding: 14px; }
.hot-work-certificate-record { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 15px; padding: 12px; border: 1px solid #e7ecef; border-radius: 12px; background: #fff; }
.hot-work-certificate-photo { position: relative; display: grid; place-items: center; min-height: 122px; overflow: hidden; padding: 0; border: 1px solid #e0e5e9; border-radius: 10px; color: var(--muted); background: #f3f6f8; cursor: pointer; }
.hot-work-certificate-photo img { width: 100%; height: 122px; object-fit: contain; background: #fff; }
.hot-work-certificate-photo > span { position: absolute; right: 7px; bottom: 7px; padding: 4px 7px; border-radius: 7px; color: #fff; background: rgba(35, 54, 72, .78); font-size: 11px; }
.hot-work-certificate-photo.placeholder { cursor: default; }
.hot-work-certificate-photo.placeholder > span { position: static; color: var(--muted); background: transparent; }
.hot-work-certificate-info { display: grid; align-content: start; gap: 12px; min-width: 0; }
.hot-work-certificate-info > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.hot-work-certificate-info > div > strong { color: var(--heading); font-size: 14px; }
.hot-work-certificate-info dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 14px; margin: 0; }
.hot-work-certificate-info dl > div { display: grid; min-width: 0; gap: 3px; }
.hot-work-certificate-info dt { color: var(--muted); font-size: 11px; }
.hot-work-certificate-info dd { overflow-wrap: anywhere; margin: 0; color: var(--text-secondary); font-size: 12px; font-weight: 650; line-height: 1.45; }
.hot-work-certificate-missing { display: grid; gap: 5px; margin: 14px; padding: 13px 14px; border-radius: 11px; color: #8a4b41; background: #fff2ef; }
.hot-work-certificate-missing strong { font-size: 13px; }
.hot-work-certificate-missing span { font-size: 12px; line-height: 1.55; }

.hot-work-signatures-modal { width: min(760px, calc(100vw - 32px)); max-height: min(92vh, 820px); overflow: hidden; }
.hot-work-signatures-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; max-height: calc(92vh - 160px); overflow: auto; padding: 18px 22px 20px; background: var(--surface); }
.hot-work-signature-person { overflow: hidden; border: 1px solid #e3e9ed; border-radius: 15px; background: #fff; }
.hot-work-signature-person.missing { border-style: dashed; }
.hot-work-signature-person > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid #edf0f2; background: #f8fafb; }
.hot-work-signature-person > div:first-child > span { display: grid; min-width: 0; gap: 3px; }
.hot-work-signature-person strong { overflow: hidden; color: var(--heading); font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }
.hot-work-signature-person small { color: var(--muted); font-size: 12px; }
.hot-work-signature-person b { flex: 0 0 auto; padding: 5px 9px; border-radius: 999px; font-size: 12px; }
.hot-work-signature-person b.available { color: #276449; background: #e6f4eb; }
.hot-work-signature-person b.missing { color: #8b675f; background: #f3ece9; }
.hot-work-signature-preview { display: grid; place-items: center; min-height: 112px; padding: 14px; color: var(--muted); font-size: 13px; background: #fff; }
.hot-work-signature-preview img { display: block; width: auto; max-width: 100%; height: 64px; object-fit: contain; filter: grayscale(1) contrast(4); }


.hot-work-action-modal { width: min(720px, calc(100vw - 32px)); max-height: min(90vh, 900px); overflow: auto; }
.hot-work-symbol { background: #f6e7dd; color: var(--warning); }
.hot-work-form { display: grid; gap: 18px; }
.hot-work-form-section { display: grid; gap: 15px; padding: 18px; border: 1px solid #dfe8ec; border-radius: 16px; background: var(--surface-strong); }
.hot-work-form-section-title { display: flex; gap: 11px; align-items: center; }
.hot-work-form-section-title > b { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: var(--warning); color: #fff; font-size: 12px; }
.hot-work-form-section-title span { display: grid; gap: 2px; }
.hot-work-form-section-title small { color: var(--muted); }

.hot-work-member-picker,
.hot-work-choice-group,
.hot-work-measure-grid { min-width: 0; margin: 0; padding: 0; border: 0; }
.hot-work-member-picker legend,
.hot-work-choice-group legend,
.hot-work-measure-grid legend { margin-bottom: 9px; color: var(--text-secondary); font-size: 13px; font-weight: 800; }
.hot-work-member-picker > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hot-work-member-picker > div > label {
  display: flex;
  gap: 9px;
  align-items: center;
  min-width: 0;
  padding: 10px;
  border: 1px solid #e8ddd6;
  border-radius: 11px;
  background: #fff;
  cursor: pointer;
}
.hot-work-member-picker > div > label.selected { border-color: var(--accent); background: var(--tint-warning); }
.hot-work-member-picker label span { display: grid; min-width: 0; }
.hot-work-member-picker label small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.hot-work-member-picker > p { margin: 0; padding: 12px; border-radius: 10px; background: var(--tint-info); color: var(--muted); }

.hot-work-choice-group > div { display: flex; flex-wrap: wrap; gap: 8px; }
.hot-work-choice-group label { padding: 8px 11px; border: 1px solid #dfe8ec; border-radius: 999px; background: #fff; color: var(--text-secondary); cursor: pointer; }
.hot-work-choice-group label.selected { border-color: var(--accent); background: var(--tint-warning); color: var(--warning); }
.hot-work-choice-group input { margin-right: 6px; }

.hot-work-measure-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.hot-work-measure-grid legend { grid-column: 1 / -1; }
.hot-work-measure-grid label { display: flex; gap: 10px; align-items: flex-start; padding: 11px 12px; border: 1px solid #dfe8ec; border-radius: 11px; background: #fff; color: var(--text-secondary); cursor: pointer; }
.hot-work-measure-grid label.checked { border-color: #4b9a77; background: var(--tint-success); color: #27644c; }
.hot-work-measure-grid input { margin-top: 2px; }

.hot-work-gas-toggle { display: flex !important; flex-direction: row !important; gap: 10px !important; align-items: flex-start; padding: 12px 14px; border: 1px solid #dfe8ec; border-radius: 12px; background: var(--tint-info); cursor: pointer; }
.hot-work-gas-toggle span { display: grid; gap: 2px; }
.hot-work-gas-toggle small { color: var(--muted); font-weight: 400; }
.hot-work-gas-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 14px; border-radius: 13px; background: var(--tint-info); }
.hot-work-gas-grid label { display: grid; gap: 6px; }

.hot-work-photo-field { display: grid; gap: 9px; }
.hot-work-photo-picker { position: relative; display: grid; place-items: center; min-height: 54px; padding: 10px; border: 1px dashed var(--accent); border-radius: 11px; background: var(--tint-warning); color: var(--warning); cursor: pointer; text-align: center; }
.hot-work-photo-picker input { position: absolute; inset: 0; width: 100%; opacity: 0; cursor: pointer; }
.hot-work-photo-field > img { width: min(240px, 100%); max-height: 160px; border-radius: 11px; object-fit: cover; }
.hot-work-modal-actions { position: sticky; bottom: -1px; z-index: 2; padding-top: 12px; background: #fff; }
.save-draft-button { margin-left: auto; }
.hot-work-action-form { display: grid; gap: 16px; }
.hot-work-action-callout { padding: 14px 16px; border-left: 4px solid var(--accent); border-radius: 0 12px 12px 0; background: var(--tint-warning); color: var(--muted); }
.hot-work-action-callout p { margin: 4px 0 0; color: var(--muted); }
.hot-work-verification-grid .hot-work-measure-card { display: grid; gap: 12px; padding: 12px 14px; border: 1px solid #dfe8ec; border-radius: 11px; background: #fff; color: var(--text-secondary); }
.hot-work-verification-grid .hot-work-measure-card.checked { border-color: #4b9a77; background: #eef8f3; color: #27644c; }
.hot-work-verification-grid .hot-work-measure-card.notApplicable { border-color: #aebbc3; background: #f3f6f8; color: #60717b; }
.hot-work-measure-status { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.hot-work-verification-grid .hot-work-measure-status label { display: flex; flex: 0 0 80px; flex-direction: row; gap: 6px; align-items: center; justify-content: center; width: 80px; height: 34px; min-height: 34px; box-sizing: border-box; padding: 0 9px; border: 1px solid #dfe8ec; border-radius: 999px; background: #fff; color: inherit; font-size: 12px; font-weight: 500; line-height: 1.2; white-space: nowrap; cursor: pointer; }
.hot-work-verification-grid .hot-work-measure-status input { flex: 0 0 16px; width: 16px; height: 16px; min-height: 16px; margin: 0; }

@media (max-width: 1120px) {
  .hot-work-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hot-work-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .hot-work-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hot-work-filterbar { grid-template-columns: 1fr; }
  .hot-work-card { grid-template-columns: 1fr; }
  .hot-work-card-side { border-top: 1px solid #dfe8ec; border-left: 0; }
  .hot-work-card-head { flex-wrap: wrap; }
  .hot-work-card-head > div { flex-basis: 100%; margin: 4px 0 0; }
  .hot-work-meta { grid-template-columns: 1fr; }
  .hot-work-member-picker > div,
  .hot-work-measure-grid,
  .hot-work-gas-grid { grid-template-columns: 1fr; }
  .hot-work-modal,
  .hot-work-action-modal { width: calc(100vw - 16px); max-height: 96vh; }
  .hot-work-form-section { padding: 14px; }
  .hot-work-modal-actions { flex-wrap: wrap; }
  .hot-work-modal-actions button { flex: 1 1 120px; }
  .save-draft-button { margin-left: 0; }
}

/* Risk library and automatic assessment */
.risk-assessment-heading .heading-actions { display: flex; flex-wrap: wrap; gap: 8px; }

.risk-assessment-summary {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 11px;
  margin-bottom: 18px;
}
.risk-assessment-summary > div {
  padding: 15px 16px;
  border: 1px solid #dce7ec;
  border-top: 3px solid #6c91a5;
  border-radius: 14px;
  background: linear-gradient(160deg, #fff, #f5f9fb);
}
.risk-assessment-summary small { display: block; color: #6f8794; font-size: 12px; font-weight: 700; }
.risk-assessment-summary b { display: inline-block; margin-top: 7px; color: #183f53; font-size: 27px; line-height: 1; }
.risk-assessment-summary span { margin-left: 4px; color: #78909d; font-size: 12px; }
.risk-assessment-summary .needs-control { border-top-color: #c68a29; }
.risk-assessment-summary .risk-red { border-top-color: #bf453f; }
.risk-assessment-summary .risk-orange { border-top-color: #db7d2d; }
.risk-assessment-summary .controlled { border-top-color: #318363; }

.risk-assessment-list { display: grid; gap: 16px; }
.risk-assessment-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 220px;
  overflow: hidden;
  border: 1px solid #dfe8ec;
  border-left: 5px solid #4f8db0;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(21, 66, 88, .07);
}
.risk-assessment-card.risk-level-red { border-left-color: #bf453f; }
.risk-assessment-card.risk-level-orange { border-left-color: #d97829; }
.risk-assessment-card.risk-level-yellow { border-left-color: #c6a02d; }
.risk-assessment-card.risk-level-blue { border-left-color: #3f83b2; }
.risk-assessment-card.control-controlled { opacity: .88; }
.risk-assessment-card-main { min-width: 0; padding: 20px; }
.risk-assessment-title { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.risk-assessment-title h3 { flex: 1 1 260px; margin: 0 0 0 4px; color: #173e52; font-size: 19px; }
.risk-level-pill,
.risk-control-pill,
.risk-rule-pill { padding: 5px 9px; border-radius: 999px; background: #e8f1f6; color: #347091; font-size: 12px; font-weight: 800; }
.risk-level-red .risk-level-pill { background: #fae5e3; color: #a63834; }
.risk-level-orange .risk-level-pill { background: #fff0df; color: #a95e18; }
.risk-level-yellow .risk-level-pill { background: #fff7d9; color: #8a711c; }
.risk-control-pill { background: #fff2d9; color: #98631c; }
.control-controlled .risk-control-pill { background: #e4f4ec; color: #287254; }
.risk-rule-pill { background: #f0eafb; color: #684d99; }
.risk-activity { margin: 12px 0 15px; color: #466474; font-size: 14px; line-height: 1.65; }

.risk-assessment-meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding: 13px 14px;
  border-radius: 12px;
  background: #f5f8fa;
}
.risk-assessment-meta small,
.risk-source small { display: block; margin-bottom: 4px; color: #8297a2; font-size: 12px; }
.risk-assessment-meta b { display: block; overflow-wrap: anywhere; color: #365566; font-size: 13px; }
.risk-source { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 12px; }
.risk-source > span { padding: 11px 13px; border: 1px solid #e2eaee; border-radius: 11px; color: #4d6876; font-size: 13px; line-height: 1.55; }

.risk-score-flow { display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 9px; align-items: center; margin-top: 14px; }
.risk-score-flow > span { min-width: 0; padding: 12px; border-radius: 11px; background: #edf4f7; text-align: center; }
.risk-score-flow small,
.risk-score-flow b,
.risk-score-flow em { display: block; }
.risk-score-flow small { color: #718995; font-size: 12px; }
.risk-score-flow b { margin-top: 4px; color: #244d61; font-size: 16px; }
.risk-score-flow em { margin-top: 2px; color: #78909b; font-size: 12px; font-style: normal; }
.risk-score-flow > i { color: #91a7b2; font-style: normal; font-weight: 800; }

.risk-control-list { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 14px; }
.risk-control-list > strong { grid-column: 1 / -1; color: var(--primary-deep); font-size: 13px; }
.risk-control-list > span { display: flex; gap: 8px; align-items: flex-start; padding: 9px 10px; border-radius: 9px; background: #fff3e6; color: #8b591d; font-size: 12px; line-height: 1.45; }
.risk-control-list > span.implemented { background: #eaf6f0; color: var(--success); }
.risk-control-list i { display: grid; place-items: center; flex: 0 0 17px; width: 17px; height: 17px; border-radius: 50%; background: #da8a31; color: #fff; font-size: 12px; font-style: normal; }
.risk-control-list .implemented i { background: #318261; }
.risk-reasons { margin-top: 13px; color: #527080; font-size: 12px; }
.risk-reasons summary { color: #32759a; cursor: pointer; font-weight: 700; }
.risk-reasons ul { margin: 9px 0 5px; padding-left: 19px; line-height: 1.6; }
.risk-reasons p { margin: 5px 0 0; color: #7a909b; }

.risk-assessment-card-side { display: flex; flex-direction: column; gap: 14px; justify-content: space-between; padding: 20px; border-left: 1px solid #e3ebef; background: #f7fafb; }
.risk-assessment-card-side small { color: #859aa5; }
.risk-assessment-card-side strong { display: block; margin-top: 6px; color: #31596d; font-size: 18px; }
.risk-assessment-card-side p { color: #69818d; font-size: 12px; line-height: 1.55; }

.risk-assessment-modal { width: min(980px, calc(100vw - 32px)); max-height: 94vh; overflow: auto; }
.risk-assessment-form { display: grid; gap: 17px; }
.risk-assessment-context { display: grid; gap: 13px; }
.risk-assessment-context > label { display: grid; gap: 6px; }
.risk-context-flags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 13px; border: 1px solid #dfe8ec; border-radius: 13px; }
.risk-context-flags legend { padding: 0 5px; color: #365d70; font-size: 12px; font-weight: 800; }
.risk-context-flags label { display: flex; gap: 7px; align-items: center; padding: 8px 10px; border-radius: 9px; background: #f2f6f8; color: #4b6978; font-size: 12px; cursor: pointer; }
.risk-context-flags label:has(input:checked) { background: #fff0df; color: #9b5a1d; }
.risk-preview-list { display: grid; gap: 13px; }
.risk-preview-card { padding: 16px; border: 1px solid #dfe7eb; border-left: 4px solid #5992af; border-radius: 14px; background: #fbfdfe; opacity: .7; }
.risk-preview-card.selected { opacity: 1; box-shadow: 0 8px 24px rgba(25, 75, 99, .08); }
.risk-preview-card.risk-level-red { border-left-color: #bd423c; }
.risk-preview-card.risk-level-orange { border-left-color: #d87827; }
.risk-preview-head { display: flex; gap: 10px; justify-content: space-between; align-items: flex-start; }
.risk-preview-head > label { display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.risk-preview-head > label span { display: grid; gap: 2px; }
.risk-preview-head > label strong { color: #234d61; }
.risk-preview-head > label small { color: #7a929e; }
.risk-preview-head > b { flex: 0 0 auto; padding: 5px 8px; border-radius: 8px; background: #eef4f7; color: #416f86; font-size: 12px; }
.risk-preview-score { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.risk-preview-score span { padding: 7px 9px; border-radius: 8px; background: #edf4f7; color: #5c7886; font-size: 12px; }
.risk-preview-card > p { color: #496776; line-height: 1.55; }
.risk-preview-card > p small { color: #768f9b; }
.risk-preview-measures { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 11px 0 0; padding: 0; border: 0; }
.risk-preview-measures legend { grid-column: 1 / -1; margin-bottom: 2px; color: #365d70; font-size: 12px; font-weight: 800; }
.risk-preview-measures label { display: flex; gap: 8px; align-items: flex-start; padding: 9px 10px; border: 1px solid #dfe8ec; border-radius: 9px; background: #fff; color: #587380; font-size: 12px; cursor: pointer; }
.risk-preview-measures label.checked { border-color: #5c9c7f; background: #edf7f2; color: #2f6d53; }
.risk-preview-card details { margin-top: 10px; color: #69838f; font-size: 12px; }
.risk-preview-card details summary { cursor: pointer; font-weight: 700; }
.risk-preview-warning { padding: 13px 15px; border-left: 4px solid #ca842b; border-radius: 0 11px 11px 0; background: #fff5e6; color: #7d541f; }
.risk-preview-warning p { margin: 4px 0 0; font-size: 12px; line-height: 1.55; }

.risk-library-modal { width: min(1020px, calc(100vw - 32px)); max-height: 94vh; overflow: auto; }
.risk-library-body { display: grid; gap: 13px; }
.risk-library-toolbar { display: flex; gap: 10px; align-items: center; }
.risk-library-toolbar .workspace-search { flex: 1; }
.risk-library-stats { display: flex; flex-wrap: wrap; gap: 8px; }
.risk-library-stats span { padding: 7px 10px; border-radius: 8px; background: #edf4f7; color: #5e7a88; font-size: 12px; }
.risk-library-list { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.risk-library-list article { display: grid; gap: 10px; padding: 15px; border: 1px solid #dfe8ec; border-radius: 13px; background: #fff; }
.risk-library-list article.disabled { opacity: .58; background: #f4f5f5; }
.risk-library-card-head { display: flex; flex-wrap: wrap; gap: 7px; align-items: center; }
.risk-library-card-head > span { padding: 4px 7px; border-radius: 7px; background: #eaf2f6; color: #42738b; font-size: 12px; font-weight: 800; }
.risk-library-card-head > strong { flex: 1 1 180px; color: #264f63; }
.risk-library-card-head > small { color: #8196a0; }
.risk-library-list article > p { margin: 0; color: #5e7783; font-size: 12px; line-height: 1.55; }
.risk-library-keywords { display: flex; flex-wrap: wrap; gap: 5px; }
.risk-library-keywords span { padding: 4px 7px; border-radius: 999px; background: #f3f6f7; color: #6b818b; font-size: 12px; }
.risk-library-score { display: flex; flex-wrap: wrap; gap: 6px; }
.risk-library-score span { padding: 6px 8px; border-radius: 7px; background: #f7f3eb; color: #786342; font-size: 12px; }
.risk-library-actions { display: flex; gap: 8px; justify-content: flex-end; }
.risk-library-editor { display: grid; gap: 15px; }
.risk-library-editor-heading { display: flex; gap: 12px; justify-content: space-between; align-items: flex-start; }
.risk-library-editor-heading > div { display: grid; gap: 3px; }
.risk-library-editor-heading small { color: #7d929c; }
.risk-library-enabled { display: flex !important; flex-direction: row !important; gap: 8px !important; align-items: center; }

@media (max-width: 980px) {
  .risk-assessment-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .risk-assessment-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-library-list { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .risk-assessment-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .risk-assessment-card { grid-template-columns: 1fr; }
  .risk-assessment-card-side { border-top: 1px solid #e3ebef; border-left: 0; }
  .risk-assessment-meta,
  .risk-source,
  .risk-control-list,
  .risk-preview-measures { grid-template-columns: 1fr; }
  .risk-score-flow { grid-template-columns: 1fr; }
  .risk-score-flow > i { transform: rotate(90deg); text-align: center; }
  .risk-assessment-modal,
  .risk-library-modal { width: calc(100vw - 16px); max-height: 96vh; }
  .risk-library-toolbar,
  .risk-library-editor-heading { align-items: stretch; flex-direction: column; }
  .risk-preview-head { flex-direction: column; }
}

/* Hot-work permit form and printable front/back permit */
.hot-work-modal { width: min(1120px, calc(100vw - 32px)); max-height: min(96dvh, 900px); overflow: auto; }
.hot-work-level-group,
.hot-work-choice-group,

.hot-work-level-group { margin: 0; padding: 0; border: 0; }
.hot-work-level-group legend { margin-bottom: 7px; color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.hot-work-level-group > div { display: flex; flex-wrap: wrap; gap: 8px; }
.hot-work-level-group label { display: inline-flex; flex: 1 1 90px; flex-direction: row !important; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 0 10px; border: 1px solid var(--border); border-radius: 11px; color: var(--text-secondary); background: #fff; cursor: pointer; }
.hot-work-level-group label.selected { border-color: var(--accent); color: var(--warning); background: var(--tint-warning); box-shadow: inset 0 0 0 1px rgba(223,93,34,.1); }
.hot-work-level-group input { margin: 0; }
.hot-work-time-grid { display: grid; grid-template-columns: auto minmax(0,1fr) auto minmax(0,1fr); gap: 8px 10px; align-items: end; color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.hot-work-time-grid > strong { align-self: center; }
.hot-work-time-grid label { display: grid; gap: 6px; }
.hot-work-time-grid label span { color: #8996a3; font-size: 12px; font-weight: 600; }
.hot-work-time-grid em { align-self: center; color: var(--muted); font-style: normal; }
.hot-work-other-method { margin-top: 9px; width: min(360px, 100%); min-height: 38px; padding: 0 11px; border: 1px solid #dfe8ec; border-radius: 10px; outline: 0; color: var(--text-secondary); background: #fff; }
.hot-work-member-picker legend small { margin-left: 8px; color: var(--warning); font-size: 12px; font-weight: 600; }
.hot-work-operator-table { min-width: 0; overflow-x: auto; border: 1px solid #dfe8ec; border-radius: 12px; background: #fff; }
.hot-work-operator-table-head,
.hot-work-operator-row { display: grid; grid-template-columns: minmax(100px,1fr) minmax(150px,1.6fr) minmax(150px,1.8fr) minmax(180px,1.8fr) minmax(120px,1.5fr); min-width: 840px; }
.hot-work-operator-table-head { color: var(--text-secondary); background: var(--tint-info); font-size: 12px; font-weight: 800; }
.hot-work-operator-table-head span,
.hot-work-operator-row span { min-width: 0; padding: 10px 11px; border-right: 1px solid #dfe8ec; overflow-wrap: anywhere; }
.hot-work-operator-table-head span:last-child,
.hot-work-operator-row span:last-child { border-right: 0; }
.hot-work-operator-row { min-height: 49px; border-top: 1px solid #dfe8ec; color: var(--text-secondary); font-size: 12px; }
.hot-work-operator-row span { display: flex; align-items: center; }
.hot-work-operator-row .empty { color: var(--muted); }
.hot-work-signature-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hot-work-signature-grid > div { display: grid; gap: 5px; padding: 12px 14px; border: 1px dashed #dfe8ec; border-radius: 12px; background: var(--tint-warning); }
.hot-work-signature-grid strong { color: var(--text-secondary); font-size: 12px; }
.hot-work-signature-grid b { color: var(--foreground); font-size: 14px; }
.hot-work-signature-grid small { color: var(--muted); }
.hot-work-signature-card { display: grid; gap: 9px; padding: 12px 14px 10px; border: 1px solid #dfe8ec; border-radius: 14px; background: var(--surface-strong); }
.hot-work-signature-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.hot-work-signature-card-head > div { display: grid; gap: 4px; min-width: 0; }
.hot-work-signature-card-head strong { color: var(--text-secondary); font-size: 12px; }
.hot-work-signature-card-head small { overflow-wrap: anywhere; color: var(--muted); font-size: 12px; }
.signature-scope-note { margin: 0; padding: 8px 10px; border-left: 3px solid var(--warning); border-radius: 0 8px 8px 0; color: var(--warning); background: var(--tint-warning); font-size: 12px; font-weight: 700; line-height: 1.5; }
.hot-work-signature-status { flex: 0 0 auto; padding: 4px 7px; border-radius: 7px; color: var(--warning); background: var(--tint-warning); font-size: 12px; font-weight: 800; }
.hot-work-signature-status.signed { color: var(--success); background: var(--tint-success); }
.hot-work-signature-pad { position: relative; overflow: hidden; border: 1px solid #dfe8ec; border-radius: 10px; background: #fff; }
.hot-work-signature-canvas { display: block; width: 100%; height: 112px; touch-action: none; cursor: crosshair; }
.hot-work-signature-placeholder { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; color: var(--muted); font-size: 12px; }
.hot-work-signature-pad-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.hot-work-signature-pad-actions small { color: var(--muted); font-size: 11px; }
.project-safety-signature-card { margin-top: 2px; }
.hot-work-completion-signatures { display: grid; gap: 12px; }
.hot-work-completion-signature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.hot-work-completion-signature-grid .hot-work-signature-canvas { height: 92px; }
.hot-work-form textarea { width: 100%; resize: vertical; min-height: 74px; padding: 10px 12px; border: 1px solid #dfe8ec; border-radius: 11px; outline: 0; color: var(--text-secondary); background: #fff; font: inherit; font-size: 12px; line-height: 1.6; }
.hot-work-form textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(223,93,34,.1); }
.hot-work-form-note { margin: 0; padding: 10px 12px; border-left: 3px solid var(--accent); border-radius: 0 10px 10px 0; color: var(--muted); background: #fff7f1; font-size: 12px; line-height: 1.6; }
.hot-work-optional-fields { padding: 10px 12px; border: 1px solid #dfe8ec; border-radius: 11px; background: var(--surface-strong); }
.hot-work-optional-fields summary { color: var(--text-secondary); cursor: pointer; font-size: 12px; font-weight: 800; }
.hot-work-optional-fields[open] { display: grid; gap: 12px; }
.hot-work-measure-number { display: inline-grid; place-items: center; flex: 0 0 auto; width: 20px; height: 20px; border-radius: 6px; color: var(--warning); background: var(--tint-warning); font-size: 12px; }
.hot-work-commitment-section { background: var(--surface-strong); }
.hot-work-commitment { margin: 0; padding: 13px 15px; border: 1px solid #dfe8ec; border-radius: 12px; color: var(--muted); background: var(--tint-warning); font-size: 12px; line-height: 1.75; }
.hot-work-postwork-note { display: grid; gap: 4px; padding: 12px 14px; border-radius: 12px; color: #5d6b64; background: #eef7f1; font-size: 12px; line-height: 1.6; }
.hot-work-postwork-note strong { color: #2d7455; }

.hot-work-preview-backdrop { place-items: start center; padding: 16px; overflow: auto; }
.hot-work-preview-modal { width: min(1240px, 100%); max-height: calc(100vh - 32px); overflow: hidden; background: #eaf0f3; }
.hot-work-preview-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 22px; border-bottom: 1px solid #d7e0e5; background: #f7fafb; }
.hot-work-preview-heading { display: flex; align-items: center; gap: 12px; min-width: 0; }
.hot-work-preview-heading > span:last-child { display: grid; gap: 3px; min-width: 0; }
.hot-work-preview-heading h2 { margin: 0; color: var(--heading); font-size: 18px; }
.hot-work-preview-heading p { margin: 0; color: #7b8d9b; font-size: 12px; }
.hot-work-preview-heading-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 9px; }
.hot-work-preview-pages { display: grid; gap: 22px; max-height: calc(100vh - 116px); padding: 24px; overflow: auto; }
.hot-work-paper { width: min(100%, 880px); margin: 0 auto; padding: 25px 28px 22px; border: 1px solid #cbd5da; color: #1f2c35; background: #fff; box-shadow: 0 14px 35px rgba(44,63,74,.14); font-family: "SimSun", "Songti SC", "Noto Serif CJK SC", serif; }
.hot-work-paper-header { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; align-items: end; margin-bottom: 16px; color: #2d3a42; font-size: 12px; }
.hot-work-paper-header strong { font-size: 20px; letter-spacing: .08em; text-align: center; white-space: nowrap; }
.hot-work-paper-header span:last-child { text-align: right; }
.hot-work-permit-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.hot-work-permit-table th,
.hot-work-permit-table td { border: 1px solid #37444c; padding: 6px 7px; vertical-align: top; overflow-wrap: anywhere; font-size: 12px; line-height: 1.55; }
.hot-work-permit-table th { color: var(--heading); background: #f1f3f4; font-weight: 800; }
.hot-work-front-info-table th { width: 14%; text-align: center; }
.hot-work-front-info-table td { width: 36%; min-height: 30px; }
.hot-work-level-check { display: inline-flex; align-items: center; gap: 3px; margin-right: 10px; white-space: nowrap; }
.hot-work-level-check::before { content: "□"; font-size: 16px; line-height: 1; }
.hot-work-level-check.checked { font-weight: 800; }
.hot-work-level-check.checked::before { content: "☑"; color: var(--warning); }
.hot-work-paper-section-title { margin: 14px 0 7px; padding-bottom: 4px; border-bottom: 2px solid #37444c; color: #283741; font-size: 13px; font-weight: 800; }
.hot-work-operator-print-table th { text-align: center; }
.hot-work-operator-print-table th:nth-child(1) { width: 12%; }
.hot-work-operator-print-table th:nth-child(2) { width: 23%; }
.hot-work-operator-print-table th:nth-child(3) { width: 23%; }
.hot-work-operator-print-table th:nth-child(4) { width: 25%; }
.hot-work-operator-print-table th:nth-child(5) { width: 17%; }
.hot-work-operator-print-table td { height: 31px; }
.hot-work-paper-commitment { margin: 13px 0; padding: 10px 11px; border: 1px solid #46535a; color: var(--heading); font-size: 12px; line-height: 1.7; }
.hot-work-signature-print-table th { width: 17%; text-align: center; }
.hot-work-signature-print-table td { width: 33%; height: 45px; }
.hot-work-signature-print-table small { display: block; margin-top: 5px; color: #69777e; font-size: 12px; }
.hot-work-paper-signature { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 35px; }
.hot-work-signature-image { display: block; width: 104px; height: 38px; object-fit: contain; }
.hot-work-approval-print-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid #37444c; border-left: 1px solid #37444c; }
.hot-work-approval-print-grid article { display: grid; gap: 4px; min-height: 58px; padding: 7px 9px; border-right: 1px solid #37444c; border-bottom: 1px solid #37444c; }
.hot-work-approval-print-grid span { color: #495961; font-size: 12px; }
.hot-work-approval-print-grid b { color: var(--heading); font-size: 12px; font-weight: 800; }
.hot-work-approval-print-grid small { color: #68777e; font-size: 12px; }
.hot-work-paper-clearance { display: grid; gap: 4px; margin-top: 13px; padding: 9px 11px; border: 1px solid #66737a; font-size: 12px; line-height: 1.55; }
.hot-work-paper-clearance strong { font-size: 12px; }
.hot-work-paper-note { margin: 9px 0 0; color: #5c696f; font-size: 11px; line-height: 1.5; }
.hot-work-back-instruction { margin-bottom: 12px; padding: 9px 11px; border: 1px solid #37444c; color: var(--heading); font-size: 12px; font-weight: 800; line-height: 1.6; }
.hot-work-back-signatures { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.hot-work-back-signatures span { min-height: 31px; padding: 7px 9px; border: 1px solid #87939a; font-size: 12px; }
.hot-work-back-signatures b { margin-left: 7px; font-weight: 800; }
.hot-work-measure-print-table th { text-align: center; }
.hot-work-measure-print-table th:nth-child(1) { width: 6%; }
.hot-work-measure-print-table th:nth-child(2) { width: 62%; }
.hot-work-measure-print-table th:nth-child(3) { width: 11%; }
.hot-work-measure-print-table th:nth-child(4),
.hot-work-measure-print-table th:nth-child(5) { width: 10.5%; }
.hot-work-measure-print-table td:first-child,
.hot-work-measure-print-table td:nth-child(3),
.hot-work-measure-print-table td:nth-child(4),
.hot-work-measure-print-table td:nth-child(5) { text-align: center; }
.hot-work-measure-print-table td { min-height: 37px; }
.hot-work-print-status { color: var(--warning); font-size: 12px; white-space: nowrap; }
.hot-work-print-status.checked { color: var(--success); font-weight: 800; }
.hot-work-back-footer { display: grid; gap: 5px; margin-top: 12px; color: #5d6b72; font-size: 12px; line-height: 1.6; }
.hot-work-back-footer p { margin: 0; }
.hot-work-back-footer strong { color: #374850; }

@media (max-width: 760px) {
  .hot-work-time-grid { grid-template-columns: 1fr; align-items: stretch; }
  .hot-work-time-grid > strong,
  .hot-work-time-grid em { align-self: auto; }
  .hot-work-signature-grid,
  .hot-work-completion-signature-grid,
  .hot-work-approval-print-grid,
  .hot-work-back-signatures { grid-template-columns: 1fr; }
  .hot-work-preview-backdrop { padding: 8px; }
  .hot-work-preview-modal { max-height: calc(100vh - 16px); }
  .hot-work-preview-toolbar { align-items: flex-start; flex-direction: column; padding: 14px; }
  .hot-work-preview-heading-actions { align-self: stretch; justify-content: flex-end; }
  .hot-work-preview-pages { max-height: calc(100vh - 138px); padding: 12px; }
  .hot-work-paper { padding: 17px 14px; }
  .hot-work-paper-header { grid-template-columns: 1fr; gap: 5px; }
  .hot-work-paper-header strong { font-size: 17px; text-align: left; }
  .hot-work-paper-header span:last-child { text-align: left; }
}

@media print {
  @page { size: A4 portrait; margin: 10mm; }
  body.printing-hot-work { background: #fff; }
  body.printing-hot-work > * { display: none !important; }
  body.printing-hot-work > #app { display: block !important; }
  body.printing-hot-work #app > *:not(.hot-work-preview-backdrop) { display: none !important; }
  body.printing-hot-work .hot-work-preview-backdrop { position: static; display: block; padding: 0; overflow: visible; background: #fff; }
  body.printing-hot-work .hot-work-preview-modal { width: auto; max-height: none; overflow: visible; border: 0; border-radius: 0; background: #fff; box-shadow: none; }
  body.printing-hot-work .hot-work-preview-toolbar { display: none; }
  body.printing-hot-work .hot-work-preview-pages { display: block; max-height: none; padding: 0; overflow: visible; }
  body.printing-hot-work .hot-work-paper { width: auto; min-height: 0; margin: 0; padding: 0; border: 0; box-shadow: none; page-break-after: always; break-after: page; }
  body.printing-hot-work .hot-work-paper:last-child { page-break-after: auto; break-after: auto; }
}

/* Hot-work application usability refinements */
.hot-work-modal > .modal-heading { position: sticky; top: 0; z-index: 5; background: linear-gradient(180deg, #f3f7fa 76%, rgba(243,247,250,.94)); }
.hot-work-modal > .modal-heading .modal-symbol { flex: 0 0 auto; }
.hot-work-application-overview { display: grid; gap: 12px; margin: 16px 26px 0; padding: 15px 16px 14px; border: 1px solid #dfe8ec; border-radius: 16px; background: linear-gradient(135deg, var(--surface-strong), #f8fbfc); box-shadow: 0 8px 20px rgba(72,95,119,.06); }
.hot-work-progress-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.hot-work-progress-head > div { display: grid; gap: 3px; min-width: 0; }
.hot-work-progress-head strong { color: var(--foreground); font-size: 12px; }
.hot-work-progress-head small { color: var(--muted); font-size: 12px; line-height: 1.5; }
.hot-work-progress-count { flex: 0 0 auto; padding: 5px 8px; border-radius: 8px; color: var(--warning); background: var(--tint-warning); font-size: 12px; font-weight: 800; }
.hot-work-progress-track { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hot-work-progress-step { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 8px 10px; border: 1px solid #dfe8ec; border-radius: 12px; background: rgba(255,255,255,.8); transition: border-color 180ms ease, background 180ms ease, box-shadow 180ms ease; }
.hot-work-progress-step > span:last-child { display: grid; gap: 2px; min-width: 0; }
.hot-work-progress-step strong { color: var(--text-secondary); font-size: 12px; }
.hot-work-progress-step small { color: var(--muted); font-size: 11px; }
.hot-work-progress-index { display: grid; flex: 0 0 28px; place-items: center; width: 28px; height: 28px; border-radius: 9px; color: var(--muted); background: var(--tint-info); font-size: 12px; font-weight: 800; }
.hot-work-progress-step.done { border-color: #b8d9c8; background: var(--tint-success); box-shadow: inset 0 0 0 1px rgba(63,139,102,.05); }
.hot-work-progress-step.done .hot-work-progress-index { color: var(--success); background: var(--tint-success); }
.hot-work-progress-step.done strong { color: #2f6f54; }
.hot-work-next-tip { display: flex; align-items: flex-start; gap: 7px; margin: 0; padding: 8px 10px; border-left: 3px solid var(--accent); border-radius: 0 9px 9px 0; color: var(--muted); background: rgba(255,246,239,.82); font-size: 12px; line-height: 1.55; }
.hot-work-next-tip > span { display: grid; flex: 0 0 16px; place-items: center; width: 16px; height: 16px; margin-top: 1px; color: var(--warning); }
.hot-work-next-tip svg { width: 16px; height: 16px; stroke-width: 1.8; }
.hot-work-form { padding-bottom: 34px; }
.hot-work-member-picker > .hot-work-member-tools { display: flex; grid-template-columns: none; align-items: center; gap: 8px; margin: -1px 0 2px; }
.hot-work-search-select { display: grid; align-content: start; gap: 6px; min-width: 0; color: var(--text-secondary); font-size: 12px; font-weight: 700; }
.hot-work-search-select > span b { color: var(--accent); }
.hot-work-search-select > .hot-work-member-search { min-height: 42px; }
.hot-work-search-select > select { width: 100%; }
.hot-work-search-result { color: var(--muted); font-size: 11px; font-weight: 600; }
.hot-work-member-search { display: flex !important; flex: 1 1 280px; flex-direction: row !important; align-items: center; gap: 8px !important; min-height: 44px; padding: 0 12px !important; border: 1px solid #dfe8ec !important; border-radius: 11px !important; color: var(--muted) !important; background: #fff !important; box-shadow: none !important; }
.hot-work-member-search:focus-within { border-color: var(--accent) !important; box-shadow: 0 0 0 3px rgba(223,93,34,.12) !important; }
.hot-work-member-search > span { display: grid !important; flex: 0 0 18px; place-items: center; width: 18px; height: 18px; color: var(--warning); }
.hot-work-member-search > span svg { width: 17px; height: 17px; }
.hot-work-member-search input { min-height: 40px; padding: 0 !important; border: 0 !important; outline: 0 !important; color: var(--text-secondary); background: transparent !important; box-shadow: none !important; font-size: 12px; }
.hot-work-member-search input::placeholder { color: var(--muted); }
.hot-work-member-search-clear { min-height: 44px; padding: 0 9px; border: 0; border-radius: 9px; color: var(--warning); background: transparent; font-size: 12px; font-weight: 800; white-space: nowrap; }
.hot-work-member-search-clear:hover { background: var(--tint-warning); }
.hot-work-member-search-clear:focus-visible { outline: 3px solid rgba(223,93,34,.2); outline-offset: 2px; }
.hot-work-member-result { flex: 0 0 auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.hot-work-member-picker > .hot-work-member-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.hot-work-member-options > label { min-height: 54px; }
.hot-work-operator-empty { margin: 0; padding: 12px 14px; border: 1px dashed #dfe8ec; border-radius: 11px; color: var(--muted); background: var(--surface-strong); font-size: 12px; line-height: 1.6; }
.hot-work-modal-actions { align-items: center; gap: 8px; margin-top: 0; padding: 12px 0 4px; border-top: 1px solid #e6ddd7; background: #fff; }
.hot-work-action-context { display: flex; flex: 1 1 auto; align-items: center; gap: 8px; min-width: 0; margin-right: auto; }
.hot-work-action-context-icon { display: grid; flex: 0 0 28px; place-items: center; width: 28px; height: 28px; border-radius: 9px; color: var(--success); background: #e1f2e8; }
.hot-work-action-context-icon svg { width: 16px; height: 16px; stroke-width: 2.2; }
.hot-work-action-context > span:last-child { display: grid; gap: 2px; min-width: 0; }
.hot-work-action-context strong { overflow: hidden; color: #4d5f55; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.hot-work-action-context small { color: var(--muted); font-size: 11px; white-space: nowrap; }
.hot-work-modal-actions .save-draft-button { margin-left: 0; }

@media (max-width: 760px) {

  .hot-work-application-overview { margin: 10px 18px 0; padding: 12px; gap: 9px; }
  .hot-work-progress-head { align-items: flex-start; flex-direction: column; gap: 7px; }
  .hot-work-progress-count { align-self: flex-start; }
  .hot-work-progress-track { gap: 6px; }
  .hot-work-progress-step { min-height: 50px; flex-direction: column; justify-content: center; gap: 3px; padding: 6px 4px; text-align: center; }
  .hot-work-progress-index { flex-basis: 23px; width: 23px; height: 23px; border-radius: 7px; font-size: 12px; }
  .hot-work-progress-step strong { font-size: 12px; }
  .hot-work-progress-step small { display: none; }
  .hot-work-member-picker > .hot-work-member-tools { align-items: stretch; flex-wrap: wrap; }
  .hot-work-member-search { flex-basis: 100%; }
  .hot-work-member-result { align-self: center; margin-left: auto; }
  .hot-work-modal-actions { padding-bottom: max(10px, env(safe-area-inset-bottom)); }
  .hot-work-action-context { flex: 1 0 100%; margin: 0 0 2px; }
  .hot-work-modal-actions > button { min-height: 44px; }
}

/* Hot-work application visual system polish */
.hot-work-modal {
  background: var(--surface);
}

.hot-work-modal > .modal-heading {
  padding: 18px 26px 14px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.hot-work-modal > .modal-heading h2 {
  margin-bottom: 4px;
  color: var(--heading);
  font-size: 18px;
  letter-spacing: .01em;
}

.hot-work-modal > .modal-heading p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.hot-work-modal > .hot-work-form {
  gap: 22px;
  padding: 16px 26px 20px;
  background: var(--surface);
}

.hot-work-yesterday-import {
  display: grid;
  gap: 12px;
  padding: 16px 18px;
  border: 1px solid #e1d4cb;
  border-radius: 16px;
  background: linear-gradient(135deg, #fffaf6, #fff);
}

.hot-work-yesterday-heading {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hot-work-yesterday-heading > span:last-child {
  display: grid;
  gap: 2px;
}

.hot-work-yesterday-heading strong { color: var(--heading); font-size: 14px; }
.hot-work-yesterday-heading small { color: var(--muted); font-size: 12px; line-height: 1.5; }

.hot-work-yesterday-icon {
  display: grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 10px;
  color: var(--warning);
  background: var(--tint-warning);
}

.hot-work-yesterday-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; }

.hot-work-yesterday-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
}

.hot-work-yesterday-controls label { display: grid; gap: 6px; color: var(--text-secondary); font-size: 12px; }
.hot-work-yesterday-controls select { width: 100%; min-height: 42px; padding: 0 11px; border: 1px solid var(--border); border-radius: 10px; color: var(--heading); background: #fff; font: inherit; }
.hot-work-yesterday-controls select:focus { border-color: var(--accent); outline: 0; box-shadow: 0 0 0 3px rgba(223, 93, 34, .12); }
.hot-work-yesterday-controls button { min-height: 42px; }

.hot-work-yesterday-preview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.hot-work-yesterday-preview > span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 9px 10px;
  border-radius: 10px;
  background: #fff;
}

.hot-work-yesterday-preview small { color: var(--muted); font-size: 11px; }
.hot-work-yesterday-preview strong { overflow: hidden; color: var(--text-secondary); font-size: 12px; font-weight: 600; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.hot-work-yesterday-empty,
.hot-work-yesterday-notice { margin: 0; padding: 9px 11px; border-radius: 9px; color: var(--muted); background: #fff; font-size: 12px; line-height: 1.55; }
.hot-work-yesterday-notice { color: #246146; background: #eef8f2; }

.hot-work-application-overview {
  margin: 12px 26px 0;
  padding: 10px 12px;
  gap: 8px;
  border-color: #e0d5ce;
  background: var(--surface);
  box-shadow: none;
}

.hot-work-progress-head strong {
  color: #4b3b34;
  font-size: 12px;
}

.hot-work-progress-head small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.hot-work-progress-count {
  padding: 5px 9px;
  color: #8f4a0e;
  background: var(--tint-warning);
  font-size: 12px;
}

.hot-work-progress-track {
  gap: 8px;
}

.hot-work-progress-step {
  min-height: 38px;
  padding: 6px 8px;
  gap: 8px;
  border-color: var(--border);
  background: #fff;
}

.hot-work-progress-step strong {
  color: var(--text-secondary);
  font-size: 12px;
}

.hot-work-progress-step small {
  color: #a18f85;
  font-size: 12px;
}

.hot-work-progress-index {
  flex-basis: 24px;
  width: 24px;
  height: 24px;
  border-radius: 8px;
  color: #9e887c;
  background: #f4ece7;
  font-size: 12px;
}

.hot-work-progress-step.done {
  border-color: #b8d9c8;
  background: #f5fbf7;
}

.hot-work-progress-step.done .hot-work-progress-index {
  color: var(--success);
  background: #dff1e7;
}

.hot-work-progress-track:not(:has(.hot-work-progress-step.done)) .hot-work-progress-step:first-child,
.hot-work-progress-track:has(.hot-work-progress-step:nth-child(1).done):not(:has(.hot-work-progress-step:nth-child(2).done)) .hot-work-progress-step:nth-child(2),
.hot-work-progress-track:has(.hot-work-progress-step:nth-child(2).done):not(:has(.hot-work-progress-step:nth-child(3).done)) .hot-work-progress-step:nth-child(3) {
  border-color: #c56a3f;
  background: var(--tint-warning);
  box-shadow: inset 0 0 0 1px rgba(223, 93, 34, .08);
}

.hot-work-next-tip {
  padding: 7px 10px;
  border-left-color: #c56a3f;
  color: #7f6254;
  background: #fff6ef;
  font-size: 12px;
  line-height: 1.55;
}

.hot-work-form-section {
  gap: 16px;
  padding: 18px;
  border-color: var(--border);
  background: #fffdfb;
}

.hot-work-form-section-title > b {
  width: auto;
  min-width: 40px;
  height: 28px;
  padding: 0 8px;
  border-radius: 9px;
  background: var(--warning);
  font-size: 12px;
  letter-spacing: .06em;
}

.hot-work-form-section-title span {
  gap: 3px;
}

.hot-work-form-section-title strong {
  color: var(--heading);
  font-size: 15px;
  line-height: 1.3;
}

.hot-work-form-section-title small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.hot-work-form .form-grid label,
.hot-work-form .hot-work-time-grid,
.hot-work-form .hot-work-time-grid label {
  color: var(--text-secondary);
  font-size: 12px;
}

.hot-work-form .form-grid label,
.hot-work-form .hot-work-time-grid label {
  gap: 6px;
}

.hot-work-form .form-grid label > span b,
.hot-work-form .hot-work-time-grid > strong b,
.hot-work-form legend b {
  color: var(--accent);
}

.hot-work-form .form-grid input,
.hot-work-form .form-grid select,
.hot-work-form .hot-work-time-grid input,
.hot-work-form textarea,
.hot-work-form .hot-work-other-method {
  min-height: 44px;
  border-color: var(--border);
  color: var(--heading);
  background: #fff;
  font-size: 13px;
}

.hot-work-form textarea {
  line-height: 1.65;
}

.hot-work-form .form-grid input:focus,
.hot-work-form .form-grid select:focus,
.hot-work-form .hot-work-time-grid input:focus,
.hot-work-form textarea:focus,
.hot-work-form .hot-work-other-method:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(223, 93, 34, .12);
}

.hot-work-level-group > div {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  max-width: 520px;
  gap: 8px;
}

.hot-work-level-group label {
  min-height: 44px;
  border-color: var(--border);
  color: var(--text-secondary);
  font-size: 12px;
}

.hot-work-level-group label.selected {
  border-color: var(--accent);
  color: var(--warning);
  background: var(--tint-warning);
}

.hot-work-choice-group label {
  padding: 9px 12px;
  color: var(--text-secondary);
  font-size: 12px;
}

.hot-work-choice-group label.selected {
  border-color: var(--accent);
  color: var(--warning);
  background: var(--tint-warning);
}

.hot-work-member-picker legend small {
  color: var(--warning);
  font-size: 12px;
}

.hot-work-member-picker > .hot-work-member-options {
  gap: 10px;
}

.hot-work-member-options > label {
  min-height: 58px;
  padding: 11px 12px;
  border-color: var(--border);
  background: #fff;
}

.hot-work-member-options > label.selected {
  border-color: var(--accent);
  background: var(--tint-warning);
  box-shadow: inset 0 0 0 1px rgba(223, 93, 34, .08);
}

.hot-work-operator-table-head {
  min-height: 48px;
  align-items: center;
  color: var(--text-secondary);
  background: var(--tint-info);
  font-size: 12px;
}

.hot-work-operator-row {
  min-height: 52px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.5;
}

.hot-work-operator-table {
  box-shadow: inset -28px 0 24px -24px rgba(223, 93, 34, .28);
}

.hot-work-signature-card {
  padding: 14px 15px 12px;
  border-color: var(--border);
  background: #fff;
  box-shadow: 0 1px 0 rgba(37, 50, 70, .04);
}

.hot-work-signature-card.attention {
  border-color: #e26b2f;
  box-shadow: 0 0 0 4px rgba(226, 107, 47, .15);
  animation: hot-work-signature-attention 1.1s ease-in-out 2;
}

.hot-work-signature-card.attention .hot-work-signature-pad {
  border-color: #e26b2f;
}

@keyframes hot-work-signature-attention {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

.hot-work-signature-card-head strong {
  color: var(--text-secondary);
  font-size: 12px;
}

.hot-work-signature-card-head small {
  color: var(--muted);
  font-size: 12px;
}

.hot-work-signature-pad {
  min-height: 128px;
  background: repeating-linear-gradient(to bottom, transparent 0 30px, rgba(234, 223, 216, .7) 30px 31px), #fff;
}

.hot-work-signature-canvas {
  height: 128px;
}

.hot-work-signature-placeholder {
  color: var(--muted);
  font-size: 12px;
}

.hot-work-signature-pad-actions small {
  font-size: 12px;
}

.hot-work-measure-grid {
  gap: 12px;
}

.hot-work-measure-grid label {
  gap: 12px;
  padding: 12px 14px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.65;
}

.hot-work-measure-grid label.checked {
  border-color: #4b9a77;
  background: #eef8f3;
  color: #27644c;
}

.hot-work-measure-grid label > span {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.hot-work-measure-number {
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border-radius: 50%;
  font-size: 12px;
}

.hot-work-optional-fields {
  border-color: var(--border);
  background: var(--surface);
}

.hot-work-gas-toggle {
  color: var(--text-secondary);
}

.hot-work-photo-picker {
  min-height: 88px;
  border-width: 1.5px;
  border-color: rgba(223,93,34,.45);
  color: var(--warning);
  background: var(--tint-warning);
}

.hot-work-commitment-section {
  border-color: #d7e6dc;
  background: #f8fbf8;
}

.hot-work-commitment-section .hot-work-form-section-title > b {
  background: #4b9a77;
}

.hot-work-commitment-section .hot-work-commitment {
  color: var(--foreground);
  font-size: 13px;
  line-height: 1.7;
}

.hot-work-postwork-note {
  line-height: 1.7;
}

.hot-work-modal-actions {
  gap: 10px;
  padding: 12px 26px 14px;
  border-top-color: var(--border);
  background: var(--surface);
  box-shadow: 0 -10px 24px rgba(37, 50, 70, .04);
}

.hot-work-action-context {
  color: var(--text-secondary);
  font-size: 12px;
}

.hot-work-action-context strong {
  color: #4d5f55;
  font-size: 12px;
}

.hot-work-action-context small {
  color: var(--muted);
  font-size: 12px;
}

.hot-work-modal-actions > button:first-of-type {
  min-height: 42px;
  padding: 0 10px;
  border: 0;
  color: var(--muted);
  background: transparent;
  box-shadow: none;
}

.hot-work-modal-actions .save-draft-button {
  min-height: 42px;
  border: 1px solid rgba(223,93,34,.45);
  color: var(--warning);
  background: #fff;
  box-shadow: none;
}

.hot-work-modal-actions > button:last-child {
  min-height: 42px;
}

@media (max-width: 760px) {
  .hot-work-certificates-body { max-height: calc(92vh - 150px); padding: 12px 14px 16px; }
  .hot-work-signatures-body { grid-template-columns: 1fr; max-height: calc(92vh - 150px); padding: 12px 14px 16px; }
  .hot-work-certificate-record { grid-template-columns: 1fr; }
  .hot-work-certificate-photo { min-height: 150px; }
  .hot-work-certificate-photo img { height: 150px; }
  .hot-work-certificate-info dl { grid-template-columns: 1fr; }

  .hot-work-modal > .modal-heading {
    padding: 16px 18px 13px;
  }

  .hot-work-modal > .hot-work-form {
    gap: 16px;
    padding: 14px 18px 20px;
  }

  .hot-work-yesterday-import { padding: 14px; }
  .hot-work-yesterday-controls { grid-template-columns: 1fr; align-items: stretch; }
  .hot-work-yesterday-preview { grid-template-columns: 1fr; }

  .hot-work-application-overview {
    margin: 10px 18px 0;
    padding: 10px 11px;
  }

  .hot-work-progress-step {
    min-height: 36px;
    flex-direction: row;
    justify-content: center;
    gap: 5px;
    padding: 6px 4px;
    text-align: left;
  }

  .hot-work-progress-step strong {
    font-size: 12px;
  }

  .hot-work-progress-index {
    flex-basis: 23px;
    width: 23px;
    height: 23px;
    border-radius: 7px;
    font-size: 12px;
  }

  .hot-work-form-section-title > b {
    min-width: 36px;
    height: 26px;
    padding: 0 7px;
  }



  .hot-work-form-section-title small {
    font-size: 12px;
  }

  .hot-work-modal-actions {
    padding: 10px 18px max(10px, env(safe-area-inset-bottom));
  }

  .hot-work-modal-actions > button {
    flex: 1 1 0;
    min-width: 0;
    padding: 0 8px;
  }

  .hot-work-modal-actions > button:last-child {
    flex: 1.35 1 0;
  }

  .hot-work-action-context {
    overflow: hidden;
  }

  .hot-work-action-context strong,
  .hot-work-action-context small {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

/* Keep choice controls compact inside the two-column form grid. */
.hot-work-form .hot-work-level-group input,
.hot-work-form .hot-work-choice-group input,
.hot-work-form .hot-work-member-options input,
.hot-work-form .hot-work-measure-grid input,
.hot-work-form .hot-work-gas-toggle input {
  flex: 0 0 18px;
  width: 18px;
  min-width: 18px;
  max-width: 18px;
  height: 18px;
  min-height: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  box-shadow: none;
  accent-color: var(--accent);
}

.hot-work-form .hot-work-member-options > label {
  flex-direction: row;
  align-items: center;
}

.hot-work-form .hot-work-member-search input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 40px;
  height: 40px;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  accent-color: auto;
}

/* Hot-work permit preview: follow the retained A4 railway hot-work certificate template. */
.hot-work-preview-backdrop {
  place-items: start center;
  padding: 16px;
  overflow: auto;
  background: rgba(29, 39, 43, .42);
}

.hot-work-preview-modal {
  width: min(1240px, 100%);
  max-height: calc(100vh - 32px);
  overflow: hidden;
  border: 1px solid #d2dadd;
  border-radius: 20px;
  background: #e7ecee;
  box-shadow: 0 24px 60px rgba(29, 39, 43, .22);
}

.hot-work-preview-toolbar {
  padding: 14px 20px;
  border-bottom: 1px solid #d5dde0;
  background: #f8faf9;
}

.hot-work-preview-heading h2 {
  color: #1d2a2d;
  font-size: 18px;
}

.hot-work-preview-heading p {
  color: #718085;
}

.hot-work-preview-pages {
  display: grid;
  gap: 28px;
  max-height: calc(100vh - 104px);
  padding: 28px 24px 36px;
  overflow: auto;
  background: #e7ecee;
}

.hot-work-paper {
  box-sizing: border-box;
  width: 1000px;
  min-width: 1000px;
  height: 1414.2857px;
  min-height: 1414.2857px;
  overflow: hidden;
  margin: 0 auto;
  padding: 0 88px 100px 93px;
  border: 0;
  color: #111;
  background: #fff;
  box-shadow: 0 12px 30px rgba(29, 39, 43, .14);
  font-family: "SimSun", "宋体", "Songti SC", "Noto Serif CJK SC", serif;
  font-size: 13px;
  line-height: 1.55;
}

.hot-work-paper-title-block,
.hot-work-paper-back-title {
  position: relative;
  display: block;
  box-sizing: border-box;
  min-height: 0;
  margin-bottom: 0;
}

.hot-work-paper-title-block h3,
.hot-work-paper-back-title h3 {
  margin: 0;
  color: #111;
  font-size: 28px;
  font-weight: 400;
  line-height: 1.16;
  text-align: center;
  white-space: nowrap;
}

.hot-work-paper-front {
  padding-top: 86px;
}

.hot-work-paper-title-block {
  height: 114px;
  margin-bottom: 19px;
}

.hot-work-paper-title-block h3 {
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
}

.hot-work-paper-title-block h3 small,
.hot-work-paper-back-title h3 small {
  display: block;
  margin-top: 4px;
  font-size: 17px;
  font-weight: 400;
}

.hot-work-paper-attachment,
.hot-work-paper-number {
  position: absolute;
  color: #111;
  font-size: 13px;
  line-height: 1.35;
}

.hot-work-paper-attachment {
  top: 0;
  left: 0;
}

.hot-work-paper-number {
  top: 110px;
  right: 0;
  text-align: right;
}

.hot-work-permit-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  color: #111;
}

.hot-work-permit-table th,
.hot-work-permit-table td {
  box-sizing: border-box;
  border: 1px solid #202020;
  padding: 6px 8px;
  color: #111;
  background: #fff;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  vertical-align: middle;
  overflow-wrap: anywhere;
}

.hot-work-front-info-table th {
  text-align: center;
  white-space: nowrap;
}

.hot-work-front-info-table td {
  text-align: left;
}

.hot-work-front-info-table tr:first-child th,
.hot-work-front-info-table tr:first-child td {
  height: 60px;
}

.hot-work-front-info-table tr:nth-child(2) th,
.hot-work-front-info-table tr:nth-child(2) td {
  height: 42px;
}

.hot-work-front-info-table tr:nth-child(3) th,
.hot-work-front-info-table tr:nth-child(3) td {
  height: 31px;
}

.hot-work-front-info-table tr:nth-child(4) th,
.hot-work-front-info-table tr:nth-child(4) td {
  height: 31px;
}

.hot-work-level-cell,
.hot-work-choice-line {
  text-align: center !important;
  white-space: nowrap;
}

.hot-work-level-check,
.hot-work-method-check {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-right: 18px;
  color: #111;
  font-size: 13px;
  font-weight: 400;
  white-space: nowrap;
}

.hot-work-level-check:last-child,
.hot-work-method-check:last-child {
  margin-right: 0;
}

.hot-work-level-check::before,
.hot-work-method-check::before {
  content: "□";
  font-size: 18px;
  line-height: 1;
}

.hot-work-level-check.checked::before,
.hot-work-method-check.checked::before {
  content: "☑";
}

.hot-work-operator-print-table {
  margin-top: 0;
  break-inside: avoid-page;
  page-break-inside: avoid;
}

.hot-work-operator-print-table tr {
  break-inside: avoid-page;
  page-break-inside: avoid;
}

.hot-work-operator-print-table th,
.hot-work-operator-print-table td,
.hot-work-measure-print-table th,
.hot-work-measure-print-table td {
  width: auto !important;
}

.hot-work-operator-print-table th,
.hot-work-operator-print-table td {
  text-align: center;
}

.hot-work-operator-print-table tr:first-child th {
  height: 31px;
  padding: 4px 5px;
  white-space: nowrap;
}

.hot-work-operator-print-table tr:not(:first-child) td {
  height: 30px;
  padding: 4px 5px;
  text-align: left;
}

.hot-work-operator-print-table tr:not(:first-child) td:first-of-type {
  text-align: center;
}

.hot-work-vertical-label {
  padding: 4px 2px !important;
  font-size: 15px !important;
  line-height: 1.38 !important;
  text-align: center !important;
  white-space: nowrap;
}

.hot-work-paper-commitment {
  margin: 0;
  padding: 10px 10px 8px;
  border: 1px solid #202020;
  border-bottom: 0;
  color: #111;
  background: #fff;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.7;
  text-align: left;
}

.hot-work-signature-print-table {
  margin-top: 0;
  border: 1px solid #202020;
  border-top: 0;
  border-collapse: separate;
  border-spacing: 0;
}

.hot-work-signature-print-table td {
  height: 100px;
  padding: 8px 10px 7px;
  border: 0;
  vertical-align: top;
}

.hot-work-paper-signature {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 40px;
  white-space: nowrap;
}

.hot-work-paper-signature strong {
  font-size: 14px;
  font-weight: 600;
}

.hot-work-paper-signature span {
  font-size: 14px;
}

.hot-work-signature-image {
  display: block;
  width: 92px;
  height: 34px;
  object-fit: contain;
}

.hot-work-signature-print-table small {
  display: block;
  margin-top: 2px;
  color: #111;
  font-size: 12px;
}

.hot-work-approval-print-table {
  margin-top: 0;
}

.hot-work-approval-print-table th,
.hot-work-approval-print-table td {
  height: 140px;
  padding: 7px 8px;
  vertical-align: top;
}

.hot-work-approval-print-table .hot-work-vertical-label,
.hot-work-approval-unit {
  text-align: center !important;
  vertical-align: middle !important;
}

.hot-work-approval-unit b {
  display: block;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.45;
}

.hot-work-approval-print-table td > span {
  display: block;
  font-size: 13px;
  line-height: 1.52;
}

.hot-work-approval-print-table td > b {
  display: block;
  margin-top: 8px;
  font-size: 14px;
  font-weight: 600;
}

.hot-work-approval-print-table td > small {
  display: block;
  margin-top: 12px;
  color: #111;
  font-size: 12.5px;
}

.hot-work-approval-signature-image {
  display: inline-block;
  width: 78px;
  height: 30px;
  margin-left: 4px;
  object-fit: contain;
  vertical-align: middle;
}

.hot-work-clearance-print-table {
  margin-top: 0;
}

.hot-work-clearance-print-table td {
  height: 142px;
  padding: 8px 10px 7px;
  vertical-align: top;
}

.hot-work-clearance-print-table td p {
  margin: 0 0 22px;
  font-size: 13px;
  line-height: 1.55;
}

.hot-work-clearance-signs {
  display: grid;
  grid-template-columns: 1fr 1fr 1.35fr;
  gap: 10px;
  font-size: 12px;
  line-height: 1.55;
}

.hot-work-clearance-signs > span { display: flex; align-items: center; gap: 5px; min-width: 0; }
.hot-work-clearance-signs em { color: #111; font-style: normal; }
.hot-work-clearance-signature-image { width: 82px; height: 34px; object-fit: contain; }
.hot-work-clearance-worker-signatures { display: flex; flex-wrap: wrap; gap: 4px; }
.hot-work-clearance-worker-signatures > span { display: inline-flex; flex: 0 0 auto; max-width: 96px; height: 34px; align-items: center; justify-content: center; gap: 2px; }
.hot-work-clearance-worker-signatures small { font-size: 9px; white-space: nowrap; }
.hot-work-clearance-worker-signatures .hot-work-clearance-signature-image { display: block; width: auto; max-width: 96px; height: 34px; }
.hot-work-measure-signature-cell { text-align: center; vertical-align: middle !important; font-size: 12px; font-weight: 600; }
/* A4 print columns are narrower than preview columns; keep the full signature inside the cell padding. */
.hot-work-measure-signature-image { display: block; width: 74px; max-width: 100%; height: 30px; margin: 0 auto; object-fit: contain; }

.hot-work-signature-canvas,
.hot-work-signature-image,
.hot-work-approval-signature-image,
.hot-work-clearance-signature-image,
.hot-work-measure-signature-image {
  filter: grayscale(1) contrast(4);
}

.hot-work-paper-note {
  margin: 10px 8px 0;
  color: #111;
  font-size: 11px;
  line-height: 1.5;
}

.hot-work-paper-back {
  padding: 86px 129px 100px 119px;
}

.hot-work-paper-back-title {
  height: 56px;
  margin-bottom: 10px;
  text-align: center;
}

.hot-work-paper-back-title h3 {
  display: inline-block;
  position: static;
  transform: none;
}

.hot-work-measure-print-table th,
.hot-work-measure-print-table td {
  padding: 7px 9px;
  font-size: 14px;
  line-height: 1.75;
}

.hot-work-measure-print-table thead th {
  height: 46px;
  font-weight: 400;
  text-align: center;
  vertical-align: middle;
}

.hot-work-measure-print-table thead th:first-child {
  text-align: left;
}

.hot-work-measure-print-table tbody td:first-child,
.hot-work-measure-print-table tbody td:nth-child(3),
.hot-work-measure-print-table tbody td:nth-child(4) {
  text-align: center;
  vertical-align: middle;
}

.hot-work-measure-print-table tbody td:nth-child(2) {
  text-align: left;
  vertical-align: middle;
}

.hot-work-measure-print-table tbody tr:last-child td {
  height: 38px;
}

.hot-work-measure-print-table thead tr:first-child th {
  height: 62px;
}

.hot-work-measure-print-table tbody tr:nth-child(1) td {
  height: 60px;
}

.hot-work-measure-print-table tbody tr:nth-child(2) td {
  height: 40px;
}

.hot-work-measure-print-table tbody tr:nth-child(3) td,
.hot-work-measure-print-table tbody tr:nth-child(4) td,
.hot-work-measure-print-table tbody tr:nth-child(7) td {
  height: 64px;
}

.hot-work-measure-print-table tbody tr:nth-child(5) td,
.hot-work-measure-print-table tbody tr:nth-child(6) td,
.hot-work-measure-print-table tbody tr:nth-child(11) td {
  height: 114px;
}

.hot-work-measure-print-table tbody tr:nth-child(8) td {
  height: 89px;
}

.hot-work-measure-print-table tbody tr:nth-child(9) td {
  height: 88px;
}

.hot-work-measure-print-table tbody tr:nth-child(10) td {
  height: 141px;
}

.hot-work-measure-print-table tbody tr:nth-child(12) td {
  height: 31px;
  padding-top: 3px;
  padding-bottom: 3px;
  line-height: 1.3;
}

@media (max-width: 760px) {
  .hot-work-preview-backdrop {
    padding: 8px;
  }

  .hot-work-preview-modal {
    max-height: calc(100vh - 16px);
  }

  .hot-work-preview-pages {
    max-height: calc(100vh - 104px);
    padding: 14px 10px 22px;
    overflow-x: auto;
  }

}

@media print {
  @page {
    size: A4 portrait;
    margin: 0;
  }

  body.printing-hot-work .hot-work-preview-backdrop {
    position: static;
    display: block;
    padding: 0;
    overflow: visible;
    background: #fff;
  }

  body.printing-hot-work .hot-work-preview-modal {
    width: auto;
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
  }

  body.printing-hot-work .hot-work-preview-pages {
    display: block;
    max-height: none;
    padding: 0;
    overflow: visible;
    background: #fff;
  }

  /* Use the same 1000px master as preview, uniformly scaled to 210mm. */
  body.printing-hot-work .hot-work-paper {
    width: 1000px;
    min-width: 1000px;
    height: 1414.2857px;
    min-height: 1414.2857px;
    padding: 86px 88px 100px 93px;
    margin: 0;
    border: 0;
    box-shadow: none;
    zoom: 0.7937007874;
    break-after: page;
    page-break-after: always;
    break-inside: avoid;
  }
  body.printing-hot-work .hot-work-paper-back {
    padding: 86px 129px 100px 119px;
  }
  body.printing-hot-work .hot-work-paper:last-child {
    break-after: auto;
    page-break-after: auto;
  }
}

.hot-work-paper-front-content {
  transform: scale(var(--hot-work-front-scale, 1));
  transform-origin: top left;
}
.hot-work-paper-back-content {
  transform: scale(var(--hot-work-back-scale, 1));
  transform-origin: top left;
}

/* Screen readability and form recovery; printed permit geometry stays defined above. */
@media screen {
  .workspace-primary-copy small, .workspace-tabs button, .workspace-tabs button b,
  .workspace-subtabs-label, .workspace-status-filter, .team-filter, .table-controls,
  .table-controls select, .table-pager, .sort-toggle, .compact-button, .export-select select,
  .data-row, .data-row small, .data-row strong, .data-row button, .data-row select,
  .workspace-search input, .search-field input, .filters select, .result-count,
  .form-grid label, .form-grid input, .form-grid select, .form-grid textarea,
  .project-meta small, .progress-block small, .detail-stats small, .detail-stats article > span,
  .project-identity p, .panel-heading p, .workspace-heading p, .detail-breadcrumb,
  .modal-heading p, .form-error, .field-hint, .sidebar nav button, .sidebar-nav-group h2,
  .profile strong, .profile small, .release-notes-trigger, .status-pill, .detail-link,
  .hot-work-form small, .hot-work-form label, .hot-work-form legend,
  .hot-work-action-context strong, .hot-work-action-context small,
  .hot-work-form-note, .hot-work-draft-note, .hot-work-progress-head small,
  .hot-work-progress-step small, .hot-work-next-tip {
    font-size: 14px;
    line-height: 1.5;
  }
  .project-meta small, .progress-block small, .detail-stats small, .detail-stats article > span,
  .project-identity p, .panel-heading p, .workspace-heading p, .detail-breadcrumb,
  .result-count, .data-row small, .hot-work-draft-note { color: var(--text-secondary); }
  .workspace-primary-tabs button.active .workspace-primary-copy small { color: var(--text-secondary); }
  .hot-work-draft-note { margin: 8px 0; line-height: 1.6; }
  .hot-work-draft-note span { display: block; }
  .hot-work-modal-actions { flex-wrap: wrap; }
  .hot-work-error-summary { display: flex; flex: 1 0 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; color: #9e3941; background: #f8e5e7; border-radius: 10px; font-size: 14px; line-height: 1.5; }
  .hot-work-error-summary .text-button { flex: 0 0 auto; color: #9e3941; }
  .hot-work-form .field-error { display: block; grid-column: 1 / -1; margin: 6px 0 0; color: #9e3941; font-size: 14px; font-weight: 600; line-height: 1.5; }
  .hot-work-form .field-error[hidden] { display: none; }
  .hot-work-form [aria-invalid="true"] { border-color: #9e3941; }
  .hot-work-form [data-hot-work-field] { scroll-margin-block: 90px 180px; }
  .hot-work-form .hot-work-time-grid .field-error { flex-basis: 100%; }
  .hot-work-action-context strong, .hot-work-action-context small { white-space: normal; }
  .record-modal :focus-visible, .hot-work-modal :focus-visible { outline: 3px solid #365673; outline-offset: 3px; }
  .form-grid input::placeholder, .form-grid textarea::placeholder,
  .hot-work-form input::placeholder, .hot-work-form textarea::placeholder,
  .workspace-search input::placeholder { color: var(--text-secondary); opacity: 1; }
}
@media screen and (max-width: 600px) {
  .form-grid input, .form-grid select, .form-grid textarea, .workspace-search input,
  .hot-work-form input:not([type=checkbox]):not([type=radio]), .hot-work-form select, .hot-work-form textarea { font-size: 16px; }
  .hot-work-error-summary { flex-wrap: wrap; }
  .hot-work-form-section-title > b { flex: 0 0 auto; width: auto; min-width: 42px; height: auto; min-height: 32px; padding: 6px; white-space: nowrap; }
  .hot-work-level-group > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hot-work-level-group label { white-space: nowrap; }
}

/* Task workspace: compact project context and progressive disclosure. */
.auth-topbar-nav a { color: var(--text-secondary); text-decoration: none; padding: 12px 4px; }
.auth-topbar-nav a:hover { color: var(--primary-deep); text-decoration: underline; }
.auth-product { margin: 0 0 20px; color: var(--heading); font-size: 24px; font-weight: 800; }
.auth-product span { display: block; margin-top: 4px; color: var(--muted); font-size: 14px; font-weight: 500; }
.auth-support { margin: 20px 0 0; font-size: 14px; line-height: 1.7; color: var(--muted); }
.auth-support a { color: var(--primary-deep); }
.release-notes-trigger { white-space: nowrap; flex-shrink: 0; }
.workspace-chip strong { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; line-height: 1.4; }
.project-summary { margin: 0 0 12px; border: 1px solid var(--border-color); border-radius: 12px; background: var(--surface); }
.project-summary > summary { display: flex; align-items: center; gap: 12px; padding: 12px 16px; cursor: pointer; min-height: 52px; list-style: none; }
.project-summary > summary::-webkit-details-marker { display: none; }
.project-summary h1 { min-width: 0; flex: 1; margin: 0; color: var(--heading); font-size: 18px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.project-summary-toggle { flex: 0 0 auto; color: var(--primary-deep); font-size: 14px; }
.project-summary-toggle::after { content: ' ⌄'; }
.project-summary[open] .project-summary-toggle::after { content: ' ⌃'; }
.project-summary[open] h1 { white-space: normal; overflow-wrap: anywhere; }
.project-summary-body { padding: 0 16px 16px; display: flex; flex-wrap: wrap; gap: 12px; }
.project-summary-body p { flex-basis: 100%; margin: 0; color: var(--muted); overflow-wrap: anywhere; }
.workspace-navigation.compact-navigation { margin-bottom: 12px; padding: 0; border: 0; background: none; box-shadow: none; }
.workspace-module-select { display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 14px; }
.workspace-module-select select { min-height: 44px; min-width: 180px; max-width: 100%; padding: 8px 12px; color: var(--foreground); border: 1px solid var(--field-border); border-radius: 10px; background: var(--surface-strong); }
.workspace-panel { display: flex; flex-direction: column; }
.workspace-panel > .panel-heading { order: -3; position: sticky; min-width: 0; }
.workspace-panel > .workspace-filters { order: -2; display: flex; flex-wrap: wrap; gap: 10px; }
.workspace-panel .workspace-search { flex: 1 1 180px; min-width: 0; }
.workspace-panel .workspace-search input { width: 100%; min-width: 0; }
.workspace-extra-filters { display: flex; flex: 1 0 100%; flex-wrap: wrap; align-items: center; gap: 12px; padding-top: 6px; }
.workspace-filter-toggle { flex: 0 0 auto; }
.filter-help { flex-basis: 100%; margin: 0; color: var(--muted); font-size: 14px; }
.members-roster-heading { gap: 14px; align-items: center; flex-direction: row; flex-wrap: wrap; }
.members-roster-heading .heading-actions { width: auto; }
.members-roster-heading > div:first-child { flex: 1 1 240px; }
.members-roster-heading h2 { margin-bottom: 0; }
.members-roster-heading p { display: none; }
.roster-primary-actions { flex: 0 1 auto; gap: 8px; }
.roster-more-menu { position: relative; }
.roster-more-menu .action-menu-popover { width: 290px; max-width: calc(100vw - 44px); right: 0; left: auto; z-index: 25; }
.roster-more-menu .action-menu-popover > * { width: 100%; margin: 0; }
.roster-more-menu .export-select { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 12px; }
.roster-more-menu .export-select select { width: 100%; min-width: 0; }
.roster-selection-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; padding: 10px 12px; border-radius: 10px; color: var(--primary-deep); background: var(--tint-info); }
.workspace-panel > .workspace-horizontal-scroll-row { position: sticky; }
.workspace-sticky-head { position: sticky; top: var(--workspace-table-head-top, 170px); z-index: 17; min-width: 0; background: #f8fbfd; box-shadow: 0 5px 12px rgba(76,102,124,.08); }
.workspace-header-scroll { padding-bottom: 0; scrollbar-width: none; }
.workspace-header-scroll::-webkit-scrollbar { display: none; }
.workspace-panel .select-cell { position: sticky; left: 0; z-index: 2; background: #f8fbfd; }
.education-native-table td:first-child { position: sticky; left: 0; z-index: 1; background: #f8fbfd; }
.education-selection-toolbar { position: static; }
.education-sticky-controls > label { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; min-height: 36px; }
.hot-work-card.linked-permit { outline: 3px solid var(--primary); outline-offset: 4px; scroll-margin-top: 100px; }
.hot-work-link-message { padding: 12px 16px; color: var(--primary-deep); background: var(--tint-info); border-radius: 10px; }
@media (max-width: 860px) {
  .topbar .global-search { display: none; }
  .topbar-actions { margin-left: auto; min-width: 0; }
  .topbar .today { display: none; }
  .content { padding-top: 12px; }
  .detail-breadcrumb { min-width: 0; margin-bottom: 10px; }
  .detail-breadcrumb strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
  .company-context { padding: 12px; margin-bottom: 12px; }
  .company-context h2 { font-size: 18px; }
  .members-roster-heading > div:first-child { flex: 1 1 100%; }
  .members-roster-heading .heading-actions { width: 100%; justify-content: flex-start; }
  .members-roster-heading .roster-primary-actions > * { flex: 0 0 auto; }
  .members-roster-heading .compact-button { padding: 10px 12px; min-height: 44px; }
  .workspace-panel .workspace-search { flex: 1 1 160px; }
  .workspace-extra-filters > * { flex: 1 1 140px; }
  .workspace-extra-filters .workspace-status-filter { flex-basis: 100%; }
  .project-summary > summary { gap: 8px; padding: 10px 12px; }
  .project-summary h1 { font-size: 16px; }
  .project-summary .status-pill { display: none; }
  .workspace-panel > .panel-heading { margin-bottom: 12px; }
  .workspace-panel > .workspace-horizontal-scroll-row { display: flex; padding-inline: 12px; }
  .workspace-horizontal-scroll-row > span { display: none; }
  .workspace-panel > .table-controls { padding-top: 0; margin: 0 0 8px; }
  .education-selection-toolbar { top: 70px; }
  .education-selection-toolbar .primary { flex: 0 0 auto; }
}
@media (max-width: 860px) and (max-height: 500px) {
  .topbar { min-height: 48px; }
  .content { padding: 8px 16px; }
  .detail-breadcrumb { display: none; }
  .workspace { margin-top: 6px; }
  .project-summary { margin-bottom: 6px; }
  .project-summary > summary { min-height: 40px; padding: 6px 12px; }
  .workspace-navigation.compact-navigation { margin-bottom: 6px; }
  .workspace-panel { padding: 0; }
  .workspace-panel > .panel-heading { padding: 8px 12px; margin-bottom: 6px; }
  .workspace-panel > .workspace-filters { width: auto; margin: 0 12px 8px; }
  .members-workspace-panel > .table-controls { order: 2; margin-top: 8px; }
  .members-roster-heading { flex-wrap: nowrap; }
  .members-roster-heading > div:first-child { flex: 1; }
  .members-roster-heading .heading-actions { width: auto; }
}

/* Desktop navigation can be hidden independently of the mobile drawer. */
.desktop-sidebar-toggle { display: none; }
@media (min-width: 861px) {
  .desktop-sidebar-toggle { display: grid; flex-shrink: 0; }
  .app-shell.sidebar-collapsed > .sidebar { display: none; }
  .app-shell.sidebar-collapsed > main { margin-left: 0; }
}

.hot-work-binding-photo-review img { display: block; max-width: 100%; width: 240px; max-height: 300px; object-fit: contain; margin: 12px 0; border-radius: 8px; }

.hot-work-signature-photo-links { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 12px 0; }
.hot-work-signature-photo-links strong { font-size: 13px; }
.hot-work-signature-photo-links a { padding: 7px 10px; border: 1px solid #d9e5e1; border-radius: 8px; color: #315c52; background: #f3f8f5; font-size: 12px; text-decoration: none; }
.hot-work-signature-photo-links a:hover { background: #e5f1eb; }
.hot-work-signature-photo-links a:focus-visible { outline: 2px solid #315c52; outline-offset: 2px; }
