:root {
  font-family: Noto Sans SC, PingFang SC, Microsoft YaHei, Manrope, Arial, sans-serif;
  color: #1E293B;
  background: #F5F7FA;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  --ink: #1E293B;
  --ink-2: #1E293B;
  --muted: #64748B;
  --line: #EDF2F7;
  --paper: #FFFFFF;
  --canvas: #F5F7FA;
  --teal: #2864A5;
  --teal-dark: #1F528A;
  --teal-soft: #EAF3FB;
  --gold: #946200;
  --gold-soft: #FFF4D6;
  --red: #B42318;
  --red-soft: #FCE8E8;
  --blue: #2864A5;
  --violet: #526173;
  --shadow: 0 10px 34px rgba(30, 41, 59, .07)
}

* {
  box-sizing: border-box
}

body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh
}

button,
input,
select,
textarea {
  font: inherit
}

button {
  cursor: pointer
}

button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid rgba(47, 104, 200, .24);
  outline-offset: 2px
}

button:disabled {
  cursor: not-allowed;
  opacity: .55
}

.app-shell {
  min-height: 100vh
}

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 248px;
  background: #FCFDFE;
  border-right: 1px solid #EDF2F7;
  display: flex;
  flex-direction: column;
  z-index: 20;
  padding: 25px 16px 13px
}

.brand-lockup {
  height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 10px;
  margin-bottom: 23px
}

.brand-mark {
  width: 35px;
  height: 35px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: var(--teal);
  box-shadow: 0 3px 8px #2f68c830;
  flex: none
}

.brand-mark svg {
  width: 27px;
  height: 27px
}

.brand-mark-small {
  width: 31px;
  height: 31px;
  border-radius: 9px
}

.brand-mark-small svg {
  width: 24px;
  height: 24px
}

.brand-copy {
  display: flex;
  flex-direction: column;
  gap: 1px
}

.brand-copy strong {
  font-size: 18px;
  letter-spacing: .03em;
  color: #1E293B
}

.brand-copy span {
  font: 500 11px Manrope, Arial, sans-serif;
  color: #94A3B8;
  letter-spacing: .13em
}

.institution-switch {
  height: 61px;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  background: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  margin-bottom: 28px;
  color: #586270
}

.institution-icon {
  width: 33px;
  height: 33px;
  background: #EAF3FB;
  color: #606f82;
  border-radius: 8px;
  display: grid;
  place-items: center;
  font-family: serif;
  font-size: 21px;
  font-weight: 700
}

.institution-switch>span:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1
}

.institution-switch strong {
  font-size: 14px;
  color: #353f4b;
  font-weight: 650
}

.institution-switch small {
  font-size: 12px;
  color: #64748B
}

.side-nav {
  flex: 1;
  overflow: auto
}

.nav-group {
  margin-bottom: 22px
}

.nav-label {
  padding: 0 11px;
  margin: 0 0 8px;
  color: #94A3B8;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .09em
}

.nav-item {
  width: 100%;
  height: 42px;
  border: 0;
  background: transparent;
  color: #64748B;
  display: flex;
  align-items: center;
  text-align: left;
  gap: 12px;
  padding: 0 12px;
  border-radius: 8px;
  margin: 3px 0;
  font-size: 14px;
  transition: background .18s, color .18s
}

.nav-item:hover {
  background: #F5F7FA;
  color: #36465a
}

.nav-item.active {
  background: #EDF2F7;
  color: #1c406f;
  font-weight: 650
}

.nav-item.active svg {
  stroke-width: 2
}

.nav-count {
  font-style: normal;
  font-size: 12px;
  margin-left: auto;
  background: #E9EEF5;
  color: #2a476c;
  border-radius: 10px;
  padding: 2px 7px
}

.sidebar-bottom {
  padding-top: 14px;
  border-top: 1px solid #EDF2F7
}

.secure-note {
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 9px;
  padding: 11px 9px;
  display: flex;
  align-items: center;
  gap: 8px;
  position: relative;
  margin-bottom: 13px
}

.secure-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #EDF2F7;
  color: #4a6281;
  display: grid;
  place-items: center
}

.secure-note>div:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.secure-note strong {
  font-size: 12px;
  color: #4c5a6d
}

.secure-note span {
  font-size: 11px;
  color: #64748B
}

.live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #5376a3;
  box-shadow: 0 0 0 3px #EDF2F7
}

.secure-note>.live-dot {
  position: absolute;
  right: 11px;
  top: 14px
}

.sidebar-profile {
  border: 0;
  background: transparent;
  width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 7px 4px;
  text-align: left;
  color: var(--ink)
}

.sidebar-profile>span:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1
}

.sidebar-profile strong {
  font-size: 13px;
  font-weight: 650
}

.sidebar-profile small {
  font-size: 11px;
  color: #64748B
}

.avatar {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: #EDF2F7;
  color: #1E293B;
  font-size: 12px;
  font-weight: 700;
  flex: none
}

.avatar-blue {
  background: #DCEAF7;
  color: #2864A5
}

.avatar-gold {
  background: #EDF2F7;
  color: #94713c
}

.avatar-violet {
  background: #EAF3FB;
  color: #2864A5
}

.main-column {
  margin-left: 248px;
  min-height: 100vh
}

.topbar {
  height: 68px;
  position: sticky;
  top: 0;
  z-index: 10;
  background: #fffffff0;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid #EDF2F7;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 37px
}

.topbar-left,
.topbar-actions {
  display: flex;
  align-items: center;
  gap: 19px
}

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #94A3B8
}

.breadcrumbs strong {
  font-weight: 650;
  color: #343d48
}

.prototype-chip {
  height: 24px;
  padding: 0 9px;
  border-radius: 20px;
  background: #F5F7FA;
  color: #99824e;
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 6px
}

.prototype-chip span {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c19d55
}

.global-search {
  width: 230px;
  height: 34px;
  border: 1px solid #EDF2F7;
  border-radius: 7px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #94A3B8;
  padding: 0 8px;
  background: #FCFDFE
}

.global-search input {
  border: 0;
  outline: 0;
  background: transparent;
  width: 100%;
  font-size: 12px;
  color: #1E293B
}

.global-search input::placeholder {
  color: #94A3B8
}

.global-search kbd {
  white-space: nowrap;
  font: 11px Manrope, sans-serif;
  color: #94A3B8;
  background: #F5F7FA;
  border-radius: 4px;
  padding: 3px 5px
}

.seat-select {
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  color: #515b69;
  padding: 5px 8px;
  font-size: 12px
}

.icon-button {
  width: 34px;
  height: 34px;
  border: 1px solid transparent;
  background: transparent;
  display: inline-grid;
  place-items: center;
  border-radius: 8px;
  color: #64748B;
  transition: .15s
}

.icon-button:hover,
.icon-button.is-open {
  background: #F5F7FA;
  color: #325077
}

.notification-button {
  position: relative
}

.notification-button>i {
  position: absolute;
  width: 6px;
  height: 6px;
  right: 6px;
  top: 6px;
  border-radius: 50%;
  background: #4480B8;
  border: 1px solid white
}

.notice-wrap {
  position: relative
}

.notice-popover {
  position: absolute;
  top: 44px;
  right: -4px;
  width: 325px;
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 11px;
  box-shadow: 0 16px 42px #17365D26;
  z-index: 20;
  overflow: hidden
}

.notice-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 14px 16px;
  border-bottom: 1px solid #EDF2F7
}

.notice-header strong {
  font-size: 14px
}

.notice-header span {
  font-size: 11px;
  color: #94A3B8
}

.notice-item {
  display: flex;
  gap: 10px;
  padding: 13px 16px;
  border-bottom: 1px solid #F0F2F3
}

.notice-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  margin-top: 5px;
  flex: none;
  background: #7e90a7
}

.notice-dot.warning {
  background: #c8954e
}

.notice-dot.risk {
  background: #4480B8
}

.notice-item strong {
  font-size: 12px
}

.notice-item p {
  font-size: 12px;
  color: #64748B;
  line-height: 1.55;
  margin: 4px 0
}

.notice-item small {
  font-size: 11px;
  color: #94A3B8
}

.notice-footer {
  text-align: center;
  background: #FCFDFE;
  padding: 10px;
  font-size: 11px;
  color: #94A3B8
}

.workspace {
  max-width: 1550px;
  margin: 0 auto;
  padding: 30px 38px 16px
}

.welcome-strip {
  min-height: 131px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 9px 2px 19px
}

.eyebrow {
  display: block;
  font: 500 11px Manrope, Noto Sans SC, sans-serif;
  letter-spacing: .13em;
  color: #94A3B8;
  text-transform: uppercase
}

.welcome-strip h1,
.section-heading h1 {
  font-size: 28px;
  letter-spacing: -.035em;
  font-weight: 650;
  margin: 9px 0 7px;
  color: #26303d
}

.welcome-strip p,
.section-heading p {
  font-size: 13px;
  color: #64748B;
  margin: 0;
  line-height: 1.6
}

.welcome-actions {
  display: flex;
  gap: 14px;
  align-items: center;
  padding-top: 23px
}

.welcome-stamp {
  display: flex;
  align-items: center;
  gap: 8px;
  padding-left: 13px;
  border-left: 1px solid #EDF2F7
}

.welcome-stamp>span:last-child {
  display: flex;
  flex-direction: column;
  gap: 3px
}

.welcome-stamp b {
  font-size: 12px;
  color: #4a5c73
}

.welcome-stamp small {
  font-size: 11px;
  color: #94A3B8
}

.button {
  height: 35px;
  border-radius: 7px;
  border: 1px solid #EDF2F7;
  padding: 0 13px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  font-size: 12px;
  font-weight: 600;
  transition: all .16s;
  white-space: nowrap
}

.button-primary {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  box-shadow: 0 3px 9px #2f68c826
}

.button-primary:hover {
  background: var(--teal-dark);
  border-color: var(--teal-dark);
  transform: translateY(-1px)
}

.button-quiet {
  background: #fff;
  color: #1E293B
}

.button-quiet:hover {
  border-color: #c9d8d2;
  background: #FCFDFE;
  color: #455a76
}

.button-small {
  height: 29px;
  font-size: 11px;
  padding: 0 9px
}

.compliance-banner {
  min-height: 61px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #EAF3FB;
  border: 1px solid #EDF2F7;
  border-radius: 9px;
  padding: 10px 14px;
  margin: 0 0 19px
}

.compliance-symbol {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: #EDF2F7;
  color: #4b6382;
  flex: none
}

.compliance-banner>div:nth-child(2) {
  flex: 1
}

.compliance-banner strong {
  font-size: 12px;
  color: #3e4e62
}

.compliance-banner p {
  font-size: 12px;
  color: #64748B;
  margin: 4px 0 0
}

.compliance-banner p b {
  color: #4f5e71;
  font-weight: 700
}

.text-button {
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #2864A5;
  font-size: 12px;
  font-weight: 600;
  padding: 5px 3px;
  white-space: nowrap
}

.text-button:hover {
  color: #1b375c
}

.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 13px;
  margin: 0 0 18px
}

.metric-card {
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  min-height: 138px;
  padding: 14px 16px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 2px 9px #17365D09
}

.metric-featured {
  background: #F5F7FA;
  border-color: #EDF2F7
}

.metric-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px
}

.metric-icon {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px
}

.icon-ink {
  background: #EDF2F7;
  color: #4f5f74
}

.icon-teal {
  background: #EDF2F7;
  color: #496487
}

.icon-amber {
  background: #EDF2F7;
  color: #bd8d4c
}

.icon-violet {
  background: #EAF3FB;
  color: #2864A5
}

.metric-period,
.metric-trend {
  font-size: 11px;
  color: #94A3B8
}

.metric-trend {
  color: #64748B
}

.trend-amber {
  color: #ba9054
}

.trend-violet {
  color: #2864A5
}

.metric-label {
  display: block;
  font-size: 12px;
  color: #64748B;
  margin-bottom: 2px
}

.metric-value {
  font: 600 33px Manrope, Noto Sans SC, sans-serif;
  letter-spacing: -.04em;
  color: #2d3642
}

.metric-value>span {
  font: 400 12px Noto Sans SC, sans-serif;
  color: #64748B;
  margin-left: 5px;
  letter-spacing: 0
}

.metric-foot {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #64748B;
  margin-top: 7px
}

.metric-neutral {
  color: #64748B
}

.metric-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%
}

.green-dot {
  background: #6680a2
}

.amber-dot {
  background: #c3934e
}

.violet-dot {
  background: #2864A5
}

.metric-watermark {
  position: absolute;
  right: 10px;
  bottom: -23px;
  font: 700 86px Manrope, sans-serif;
  color: #456e5b0b
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(282px, 1fr);
  gap: 14px
}

.panel {
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  box-shadow: 0 2px 10px #17365D0a
}

.project-panel {
  overflow: hidden
}

.panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 17px 18px 14px
}

.panel-heading h2 {
  font-size: 16px;
  font-weight: 650;
  margin: 5px 0 0;
  color: #313a46;
  letter-spacing: -.01em
}

.panel-heading p {
  font-size: 12px;
  color: #64748B;
  margin: 5px 0 0
}

.table-wrap {
  width: 100%;
  overflow-x: auto
}

.data-table {
  border-collapse: collapse;
  width: 100%;
  text-align: left;
  min-width: 670px
}

.data-table th {
  height: 35px;
  background: #FCFDFE;
  border-block: 1px solid #EDF2F7;
  font-size: 11px;
  font-weight: 550;
  color: #94A3B8;
  padding: 0 12px;
  white-space: nowrap
}

.data-table th:first-child,
.data-table td:first-child {
  padding-left: 18px
}

.data-table th:last-child,
.data-table td:last-child {
  padding-right: 17px
}

.data-table td {
  height: 62px;
  border-bottom: 1px solid #F5F7FA;
  padding: 9px 12px;
  font-size: 12px;
  color: #1E293B;
  white-space: nowrap
}

.data-table tbody tr {
  transition: background .12s;
  cursor: pointer
}

.data-table tbody tr:hover {
  background: #FCFDFE
}

.data-table tbody tr:last-child td {
  border-bottom: 0
}

.project-cell {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 220px
}

.project-monogram {
  width: 31px;
  height: 31px;
  border-radius: 8px;
  display: grid;
  place-items: center;
  background: #F5F7FA;
  color: #64748B;
  font: 600 16px Georgia, serif;
  flex: none
}

.project-cell>div,
.owner-cell {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.project-cell strong {
  font-size: 12px;
  font-weight: 600;
  color: #414954;
  max-width: 260px;
  overflow: hidden;
  text-overflow: ellipsis
}

.project-cell small,
.owner-cell small {
  font-size: 11px;
  color: #94A3B8
}

.owner-cell strong {
  font-size: 12px;
  font-weight: 600;
  color: #1E293B
}

.table-route {
  font-size: 11px;
  padding: 4px 7px;
  border-radius: 4px;
  white-space: nowrap
}

.table-route.simple {
  color: #4f6582;
  background: #EAF3FB
}

.table-route.meeting {
  color: #2864A5;
  background: #EAF3FB
}

.status-badge {
  font-size: 11px;
  color: #64748B;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap
}

.status-badge i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #94A3B8
}

.badge-blue {
  color: #526173
}

.badge-blue i {
  background: #6a82a1
}

.badge-violet {
  color: #2864A5
}

.badge-violet i {
  background: #2864A5
}

.badge-amber {
  color: #a37b45
}

.badge-amber i {
  background: #c59a59
}

.badge-green {
  color: #6e8b6e
}

.badge-green i {
  background: #6b83a2
}

.badge-red {
  color: #2864A5
}

.badge-red i {
  background: #6A9BCB
}

.date-cell {
  font: 12px Manrope, Noto Sans SC, sans-serif;
  color: #64748B !important
}

.dashboard-side {
  display: flex;
  flex-direction: column;
  gap: 13px
}

.meeting-panel,
.activity-panel {
  padding-bottom: 12px
}

.calendar-tile {
  width: auto;
  min-width: 34px;
  height: 39px;
  background: #EDF2F7;
  border: 1px solid #EDF2F7;
  border-radius: 7px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #a6824c;
  padding: 0 6px
}

.calendar-tile b {
  font: 600 18px Manrope, sans-serif;
  line-height: 1;
  white-space: nowrap
}

.calendar-tile small {
  font-size: 10px
}

.meeting-date {
  margin: 0 17px;
  padding: 11px 0;
  display: flex;
  gap: 9px;
  align-items: center;
  border-bottom: 1px solid #F5F7FA
}

.meeting-date-mark {
  width: 29px;
  height: 29px;
  border-radius: 7px;
  background: #eef3f4;
  color: #637183;
  display: grid;
  place-items: center
}

.meeting-date>div {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.meeting-date strong {
  font-size: 12px;
  color: #1E293B
}

.meeting-date small {
  font-size: 11px;
  color: #94A3B8
}

.threshold-row {
  padding: 13px 18px 8px
}

.threshold-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  color: #64748B;
  margin-bottom: 8px
}

.threshold-label b {
  font: 600 14px Manrope, sans-serif;
  color: #545e6b
}

.threshold-label b small {
  font-size: 11px;
  font-weight: 400;
  color: #94A3B8
}

.threshold-track {
  height: 5px;
  border-radius: 6px;
  background: #EDF2F7;
  overflow: hidden
}

.threshold-track>span {
  height: 100%;
  display: block;
  background: linear-gradient(90deg, #768aa4, #c5a46d);
  border-radius: 6px;
  transition: width .25s
}

.threshold-note {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 18px;
  color: #9a835f;
  font-size: 11px
}

.threshold-indicator {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #c39a5b
}

.subtle-link {
  border: 0;
  background: transparent;
  color: #2864A5;
  font-size: 11px;
  margin-left: auto;
  padding: 3px;
  display: flex;
  align-items: center
}

.urgent-callout {
  margin: 12px 16px 0;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 7px;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 8px
}

.urgent-mark {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #EDF2F7;
  color: #b68a4e
}

.urgent-callout>span:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1
}

.urgent-callout b {
  font-size: 11px;
  color: #876f4d
}

.urgent-callout small {
  font-size: 10px;
  color: #b19b79
}

.urgent-callout button {
  border: 0;
  background: transparent;
  color: #a67c3c;
  font-size: 11px
}

.activity-panel .panel-heading {
  padding-bottom: 11px
}

.small-icon {
  width: 28px;
  height: 28px;
  border: 1px solid #EDF2F7
}

.mini-timeline {
  padding: 1px 18px 0
}

.mini-event {
  display: flex;
  gap: 9px;
  position: relative;
  padding: 4px 0 13px
}

.mini-event:not(:last-child):after {
  content: "";
  position: absolute;
  left: 3px;
  top: 13px;
  bottom: -1px;
  width: 1px;
  background: #EDF2F7
}

.timeline-marker {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #778ca7;
  position: relative;
  z-index: 1;
  margin-top: 4px;
  flex: none
}

.marker-warning {
  background: #c89957
}

.marker-risk {
  background: #4480B8
}

.marker-info {
  background: #788aa3
}

.mini-event>div p {
  font-size: 11px;
  color: #64748B;
  margin: 0 0 4px
}

.mini-event>div p b {
  font-weight: 600;
  color: #1E293B
}

.mini-event small {
  font: 10px Manrope, Noto Sans SC, sans-serif;
  color: #94A3B8
}

.audit-note {
  margin: 0 16px;
  background: #F5F7FA;
  border-radius: 5px;
  padding: 7px;
  color: #94A3B8;
  font-size: 10px;
  display: flex;
  align-items: center;
  gap: 5px
}

.ai-boundary {
  margin-top: 14px;
  border: 1px solid #EDF2F7;
  background: #FCFDFE;
  border-radius: 9px;
  padding: 11px 14px;
  display: flex;
  align-items: center;
  gap: 10px
}

.ai-orbit {
  width: 29px;
  height: 29px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #DCEAF7;
  color: #2864A5;
  flex: none
}

.ai-boundary>div {
  flex: 1
}

.ai-boundary strong {
  font-size: 11px;
  color: #1E293B
}

.ai-boundary p {
  font-size: 11px;
  color: #94A3B8;
  margin: 4px 0 0;
  line-height: 1.55
}

.boundary-tag {
  font-size: 10px;
  color: #64748B;
  padding: 5px 7px;
  border: 1px solid #EDF2F7;
  border-radius: 5px;
  white-space: nowrap
}

.page-footer {
  display: flex;
  justify-content: space-between;
  padding: 17px 1px 5px;
  color: #94A3B8;
  font-size: 10px
}

.page-footer>span:last-child {
  display: flex;
  align-items: center;
  gap: 5px
}

.section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin: 7px 1px 21px
}

.section-heading h1 {
  margin-top: 7px
}

.heading-action {
  display: flex;
  gap: 8px
}

.compact-banner {
  margin-bottom: 15px;
  min-height: 55px
}

.banner-law {
  font: 11px Manrope, Noto Sans SC, sans-serif;
  color: #94A3B8;
  border-left: 1px solid #E9EEF5;
  padding-left: 12px
}

.listing-panel {
  overflow: hidden
}

.list-toolbar {
  min-height: 59px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 17px;
  gap: 15px
}

.filter-tabs {
  display: flex;
  gap: 4px;
  align-items: center
}

.filter-tabs button {
  height: 30px;
  border: 0;
  border-radius: 5px;
  padding: 0 10px;
  background: transparent;
  color: #64748B;
  font-size: 11px;
  white-space: nowrap
}

.filter-tabs button.selected {
  background: #EAF3FB;
  color: #1E293B;
  font-weight: 600
}

.filter-tabs button span {
  background: #EDF2F7;
  border-radius: 8px;
  margin-left: 5px;
  padding: 2px 5px;
  font: 11px Manrope, sans-serif;
  color: #5b6c81
}

.list-actions {
  display: flex;
  gap: 7px;
  align-items: center
}

.table-search {
  height: 31px;
  display: flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #EDF2F7;
  padding: 0 8px;
  border-radius: 6px;
  color: #94A3B8
}

.table-search input {
  border: 0;
  outline: 0;
  width: 155px;
  font-size: 11px
}

.table-search input::placeholder {
  color: #94A3B8
}

.full-table {
  min-width: 860px
}

.full-table td {
  height: 68px
}

.full-table .project-cell strong {
  max-width: 280px
}

.row-open {
  width: 27px;
  height: 27px
}

.table-foot {
  height: 39px;
  border-top: 1px solid #EDF2F7;
  padding: 0 17px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #94A3B8;
  font-size: 10px
}

.table-foot b {
  color: #64748B
}

.table-foot span:last-child {
  display: flex;
  align-items: center;
  gap: 5px
}

.empty-state {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 7px;
  color: #94A3B8
}

.empty-state strong {
  font-size: 13px;
  color: #1E293B
}

.empty-state span {
  font-size: 11px
}

.review-rule-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 9px;
  padding: 13px 16px;
  margin-bottom: 16px
}

.review-rule-icon {
  width: 34px;
  height: 34px;
  border-radius: 9px;
  background: #EDF2F7;
  color: #5e7089;
  display: grid;
  place-items: center
}

.review-rule-banner>div:nth-child(2) {
  flex: 1
}

.review-rule-banner strong {
  font-size: 12px;
  color: #4a586a
}

.review-rule-banner p {
  font-size: 11px;
  color: #64748B;
  margin: 4px 0 0;
  line-height: 1.5
}

.rule-chip {
  font-size: 10px;
  border: 1px solid #E9EEF5;
  padding: 4px 7px;
  border-radius: 4px;
  color: #64748B
}

.member-privacy-note {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 13px;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 7px;
  color: #8c7956;
  font-size: 11px;
  margin-bottom: 14px
}

.member-privacy-note b {
  color: #756344
}

.review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(235px, .8fr);
  gap: 14px;
  align-items: start
}

.review-list {
  display: flex;
  flex-direction: column;
  gap: 11px
}

.review-card {
  padding: 16px
}

.review-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px
}

.case-id {
  font: 500 10px Manrope, Noto Sans SC, sans-serif;
  letter-spacing: .06em;
  color: #64748B
}

.review-card h3 {
  margin: 6px 0 0;
  font-size: 16px;
  font-weight: 650;
  color: #3a424d
}

.review-due {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 10px;
  color: #a17f4c;
  background: #F5F7FA;
  padding: 5px 7px;
  border-radius: 5px
}

.review-meta {
  display: flex;
  gap: 16px;
  margin-top: 12px;
  flex-wrap: wrap
}

.review-meta span {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #94A3B8;
  font-size: 11px
}

.review-rule-mini {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 6px;
  padding: 8px 10px;
  margin-top: 12px
}

.mini-shield {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  background: #EDF2F7;
  color: #66768b
}

.review-rule-mini>div {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 3px
}

.review-rule-mini b {
  font-size: 11px;
  color: #647182
}

.review-rule-mini small {
  font-size: 10px;
  color: #94A3B8
}

.route-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 8px;
  border-radius: 5px;
  white-space: nowrap
}

.route-simple {
  background: #EAF3FB;
  color: #2864A5
}

.route-meeting {
  background: #EAF3FB;
  color: #526173
}

.reviewer-strip {
  margin: 11px 0 0;
  display: flex;
  align-items: center;
  gap: 13px
}

.small-label {
  font-size: 10px;
  color: #94A3B8
}

.reviewer-avatars {
  display: flex;
  gap: 13px
}

.reviewer-person {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: #64748B
}

.reviewer-person .avatar {
  width: 23px;
  height: 23px;
  font-size: 10px
}

.reviewer-done>svg {
  color: #5b7597
}

.review-action {
  margin-top: 13px;
  width: 100%;
  height: 32px
}

.assign-inline {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-top: 11px;
  margin-top: 10px;
  border-top: 1px solid #F5F7FA
}

.assign-inline>span {
  font-size: 10px;
  color: #64748B;
  margin-right: auto
}

.assign-inline select,
.assignment-control select {
  font-size: 11px;
  border: 1px solid #EDF2F7;
  border-radius: 5px;
  color: #1E293B;
  background: #fff;
  padding: 6px
}

.submitted-opinion {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  padding: 9px;
  border-radius: 6px;
  margin-top: 12px
}

.submitted-check {
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  background: #EDF2F7;
  color: #5b7392;
  border-radius: 50%
}

.submitted-opinion>div {
  flex: 1
}

.submitted-opinion b {
  font-size: 11px;
  color: #5b687a
}

.submitted-opinion p {
  font-size: 10px;
  color: #64748B;
  margin: 3px 0 0
}

.subtle-status {
  font-size: 10px;
  color: #8591a0
}

.subtle-alert {
  font-size: 10px;
  color: #9b927e;
  background: #F5F7FA;
  padding: 8px 9px;
  border-radius: 5px;
  margin-top: 11px
}

.review-aside {
  display: flex;
  flex-direction: column;
  gap: 11px
}

.aside-card {
  padding: 15px
}

.aside-card h3 {
  font-size: 14px;
  color: #404955;
  margin: 6px 0 12px
}

.standard-list {
  display: flex;
  flex-direction: column
}

.standard-list>div {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  padding: 9px 0;
  border-top: 1px solid #F5F7FA
}

.standard-list>div>span {
  font: 12px Manrope, sans-serif;
  color: #9ba4af
}

.standard-list p {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin: 0
}

.standard-list b {
  font-size: 11px;
  color: #1E293B
}

.standard-list small {
  font-size: 10px;
  color: #94A3B8
}

.aside-ai {
  margin-top: 6px;
  background: #F5F7FA;
  border-radius: 5px;
  padding: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: #64748B;
  font-size: 10px
}

.upgrade-card {
  background: #FCFDFE;
  border-color: #EDF2F7
}

.upgrade-symbol {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  background: #EDF2F7;
  color: #b68746;
  display: grid;
  place-items: center
}

.upgrade-card h3 {
  margin: 8px 0 5px;
  color: #765f40
}

.upgrade-card p {
  font-size: 11px;
  line-height: 1.65;
  color: #9a896b;
  margin: 0
}

.upgrade-card>span {
  font-size: 10px;
  color: #b1905c;
  display: block;
  margin-top: 10px
}

.empty-review {
  padding: 60px 20px;
  text-align: center
}

.empty-icon {
  width: 43px;
  height: 43px;
  border-radius: 50%;
  background: #F5F7FA;
  color: #6f8097;
  display: grid;
  place-items: center;
  margin: auto
}

.empty-review h3 {
  font-size: 14px;
  color: #1E293B;
  margin: 12px 0 5px
}

.empty-review p {
  font-size: 11px;
  color: #94A3B8
}

.meeting-config-strip {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 15px;
  border: 1px solid #EDF2F7;
  border-radius: 9px;
  background: #fff;
  margin-bottom: 14px
}

.meeting-config-icon {
  width: 33px;
  height: 33px;
  border-radius: 8px;
  background: #F5F7FA;
  color: #697687;
  display: grid;
  place-items: center
}

.meeting-config-strip>div:nth-child(2) {
  display: flex;
  flex-direction: column;
  gap: 4px;
  flex: 1
}

.meeting-config-strip>div:nth-child(2) b {
  font-size: 12px;
  color: #535d69
}

.meeting-config-strip>div:nth-child(2) span {
  font-size: 11px;
  color: #64748B
}

.meeting-config-strip strong {
  color: #57687d
}

.month-picker {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #94A3B8;
  font-size: 11px
}

.month-picker select {
  border: 1px solid #EDF2F7;
  border-radius: 5px;
  padding: 6px 7px;
  color: #545e6b;
  background: #fff;
  font-size: 11px
}

.meeting-overview-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 14px;
  margin-bottom: 14px
}

.threshold-panel,
.emergency-panel {
  padding: 0 16px 14px
}

.month-badge {
  font: 11px Manrope, sans-serif;
  color: #64748B;
  background: #F5F7FA;
  padding: 5px 7px;
  border-radius: 4px
}

.threshold-number {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding: 0 2px 8px
}

.threshold-number b {
  font: 600 45px Manrope, sans-serif;
  letter-spacing: -.05em;
  color: #3a4554
}

.threshold-number>span {
  font-size: 12px;
  color: #64748B
}

.threshold-number small {
  color: #94A3B8;
  font-size: 11px
}

.threshold-progress {
  display: flex;
  gap: 5px;
  margin: 0 2px 14px
}

.threshold-progress span {
  height: 5px;
  flex: 1;
  border-radius: 5px;
  background: #EDF2F7
}

.threshold-progress span.filled {
  background: linear-gradient(90deg, #7589a3, #8c9db3)
}

.disposition-card {
  border-radius: 7px;
  padding: 10px;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 12px
}

.disposition-defer {
  background: #F5F7FA;
  border: 1px solid #EDF2F7
}

.disposition-ready {
  background: #F5F7FA;
  border: 1px solid #EDF2F7
}

.disposition-mark {
  color: #b08a50;
  margin-top: 1px
}

.disposition-ready .disposition-mark {
  color: #5a7291
}

.disposition-card b {
  font-size: 11px;
  color: #8b7148
}

.disposition-ready b {
  color: #54657a
}

.disposition-card p {
  font-size: 10px;
  color: #9f8d6e;
  margin: 4px 0 0;
  line-height: 1.5
}

.disposition-ready p {
  color: #848e9b
}

.full-button {
  width: 100%;
  height: 32px
}

.demo-note {
  display: block;
  text-align: center;
  color: #94A3B8;
  font-size: 10px;
  margin-top: 7px
}

.emergency-panel .panel-heading {
  padding-inline: 0
}

.urgent-count {
  font: 12px Manrope, sans-serif;
  color: #4480B8;
  background: #F4F8FD;
  padding: 5px 8px;
  border-radius: 5px
}

.emergency-panel>.muted {
  font-size: 11px;
  line-height: 1.55;
  margin: 0 0 12px
}

.urgent-project {
  display: flex;
  align-items: center;
  gap: 8px;
  border-top: 1px solid #F5F7FA;
  padding: 9px 0
}

.urgent-project-icon {
  width: 26px;
  height: 26px;
  border-radius: 7px;
  display: grid;
  place-items: center;
  background: #EAF3FB;
  color: #4480B8
}

.urgent-project>div {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1;
  min-width: 0
}

.urgent-project b {
  font-size: 11px;
  color: #1E293B;
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden
}

.urgent-project small {
  font-size: 10px;
  color: #94A3B8
}

.urgent-off {
  border: 0;
  background: transparent;
  color: #a1815c;
  font-size: 10px
}

.empty-urgent {
  padding: 18px;
  text-align: center;
  color: #94A3B8;
  font-size: 11px;
  background: #FCFDFE;
  border-radius: 6px
}

.urgent-foot {
  display: flex;
  align-items: center;
  gap: 7px;
  border-top: 1px solid #F5F7FA;
  padding-top: 10px;
  margin-top: 6px;
  color: #9a8b74;
  font-size: 10px
}

.urgent-foot .live-dot {
  width: 6px;
  height: 6px;
  box-shadow: none;
  background: #c4995e
}

.meeting-queue-panel {
  overflow: hidden
}

.meeting-queue-panel .panel-heading {
  padding-bottom: 13px
}

.meeting-list {
  padding: 0 17px
}

.meeting-item {
  display: flex;
  align-items: center;
  gap: 12px;
  border-top: 1px solid #EDF2F7;
  padding: 12px 0
}

.meeting-item-main {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  flex: 1;
  min-width: 220px
}

.meeting-item-marker {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #526173;
  margin-top: 15px;
  flex: none
}

.meeting-item-marker.marker-urgent {
  background: #4480B8
}

.meeting-item-main h3 {
  font-size: 12px;
  color: #434a54;
  margin: 4px 0;
  font-weight: 600
}

.meeting-item-main p {
  font-size: 10px;
  color: #94A3B8;
  margin: 0
}

.meeting-item-meta {
  display: flex;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap
}

.meeting-item-actions {
  display: flex;
  align-items: center;
  gap: 6px
}

.urgent-label {
  font-size: 10px;
  color: #4480B8;
  background: #EAF3FB;
  padding: 4px 6px;
  border-radius: 4px
}

.document-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid #EDF2F7;
  background: #F5F7FA;
  color: #9b8968;
  padding: 10px 12px;
  border-radius: 7px;
  font-size: 11px;
  margin-bottom: 15px
}

.document-notice>span:first-of-type {
  flex: 1
}

.unconnected-chip {
  font-size: 10px;
  background: #EDF2F7;
  color: #a48756;
  padding: 4px 6px;
  border-radius: 4px
}

.document-template-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px
}

.document-template {
  display: flex;
  align-items: stretch;
  gap: 17px;
  text-align: left;
  padding: 16px;
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 9px;
  box-shadow: 0 2px 10px #17365D0a;
  transition: .16s
}

.document-template:hover {
  border-color: #cddfd7;
  transform: translateY(-2px);
  box-shadow: var(--shadow)
}

.document-preview {
  width: 120px;
  min-height: 152px;
  background: #FCFDFE;
  border: 1px solid #EDF2F7;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 12px 7px;
  color: #64748B;
  flex: none
}

.document-preview-meeting {
  background: #EAF3FB;
  border-color: #EAF3FB;
  color: #81738e
}

.doc-emblem {
  margin-bottom: 7px
}

.document-preview>span {
  font-size: 9px;
  letter-spacing: .08em
}

.document-preview>b {
  text-align: center;
  font-family: "Noto Serif SC", Songti SC, serif;
  color: #424d5b;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.65;
  margin-top: 10px
}

.document-preview-meeting>b {
  color: #17365D
}

.document-preview>i {
  width: 48px;
  height: 1px;
  background: #ced9d0;
  margin: 8px 0
}

.document-preview>small {
  font-size: 8px;
  color: #94A3B8
}

.doc-stamp {
  position: absolute;
  right: 5px;
  bottom: 12px;
  border: 1px solid rgba(68, 128, 184, .5);
  border-radius: 50%;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  color: #2864A5b3;
  font-size: 9px;
  transform: rotate(-12deg)
}

.meeting-stamp {
  border-color: #2864A580;
  color: #2864A5b3
}

.template-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 5px 0
}

.template-index {
  font: 10px Manrope, sans-serif;
  letter-spacing: .13em;
  color: #94A3B8
}

.template-info strong {
  font-size: 13px;
  color: #49515b;
  margin: 13px 0 5px
}

.template-info small {
  font-size: 11px;
  line-height: 1.6;
  color: #94A3B8;
  max-width: 270px
}

.template-action {
  display: flex;
  align-items: center;
  gap: 5px;
  margin-top: auto;
  color: #4d6686;
  font-size: 11px;
  font-weight: 600
}

.document-list-panel {
  overflow: hidden
}

.document-list-panel .demo-note {
  margin: 0
}

.file-icon {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #F5F7FA;
  color: #798594;
  flex: none
}

.audit-prototype-warning {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #EDF2F7;
  background: #F5F7FA;
  border-radius: 8px;
  margin-bottom: 15px
}

.audit-lock {
  width: 31px;
  height: 31px;
  border-radius: 8px;
  background: #EDF2F7;
  color: #a68a56;
  display: grid;
  place-items: center
}

.audit-prototype-warning>div {
  flex: 1
}

.audit-prototype-warning strong {
  font-size: 11px;
  color: #887849
}

.audit-prototype-warning p {
  font-size: 10px;
  color: #a09476;
  margin: 4px 0 0
}

.local-only {
  font: 10px Manrope, sans-serif;
  color: #ae9a69;
  border: 1px solid #E9EEF5;
  border-radius: 4px;
  padding: 4px 6px
}

.audit-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 14px
}

.audit-stat {
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 9px;
  min-height: 105px;
  padding: 13px;
  display: grid;
  grid-template-columns: 31px 1fr auto;
  grid-template-rows: 21px 29px 16px;
  align-items: center;
  column-gap: 8px
}

.audit-stat-icon {
  grid-row: 1/3;
  width: 29px;
  height: 29px;
  border-radius: 8px;
  display: grid;
  place-items: center
}

.audit-stat-blue {
  background: #ebf1f5;
  color: #648696
}

.audit-stat-green {
  background: #EDF2F7;
  color: #6f819a
}

.audit-stat-amber {
  background: #EDF2F7;
  color: #b28c52
}

.audit-stat small {
  font-size: 10px;
  color: #94A3B8
}

.audit-stat>b {
  font: 600 25px Manrope, sans-serif;
  color: #424b56
}

.audit-stat>b em {
  font: 11px Noto Sans SC, sans-serif;
  font-style: normal;
  color: #94A3B8;
  margin-left: 4px
}

.audit-stat>span:last-child {
  grid-column: 2/4;
  font-size: 10px;
  color: #94A3B8
}

.audit-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) minmax(245px, .8fr);
  gap: 14px;
  align-items: start
}

.audit-log-panel {
  overflow: hidden
}

.record-count {
  font: 10px Manrope, sans-serif;
  color: #94A3B8;
  letter-spacing: .07em
}

.audit-log-list {
  padding: 0 17px
}

.audit-log-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 0;
  border-top: 1px solid #F5F7FA
}

.audit-event-icon {
  width: 25px;
  height: 25px;
  border-radius: 7px;
  display: grid;
  place-items: center;
  flex: none;
  background: #EDF2F7;
  color: #687485
}

.event-success {
  background: #EDF2F7;
  color: #607692
}

.event-warning {
  background: #F5F7FA;
  color: #b18a4e
}

.event-risk {
  background: #F4F8FD;
  color: #4480B8
}

.audit-event-content {
  flex: 1
}

.audit-event-content>div {
  display: flex;
  align-items: center;
  gap: 8px
}

.audit-event-content>div strong {
  font-size: 11px;
  color: #1E293B
}

.audit-target {
  font: 10px Manrope, Noto Sans SC, sans-serif;
  color: #64748B;
  background: #F5F7FA;
  padding: 3px 5px;
  border-radius: 4px
}

.audit-event-content p {
  font-size: 10px;
  color: #64748B;
  line-height: 1.6;
  margin: 4px 0
}

.audit-event-content>small {
  font-size: 10px;
  color: #94A3B8
}

.audit-event-content>small i {
  font-style: normal;
  margin: 0 3px
}

.audit-log-foot {
  background: #FCFDFE;
  border-top: 1px solid #F5F7FA;
  padding: 8px 17px;
  color: #94A3B8;
  font-size: 10px
}

.analytics-panel {
  padding-bottom: 14px
}

.year-chip {
  font: 11px Manrope, sans-serif;
  background: #F5F7FA;
  color: #64748B;
  padding: 4px 7px;
  border-radius: 4px
}

.chart-total {
  padding: 6px 18px 14px;
  display: flex;
  align-items: baseline;
  gap: 7px
}

.chart-total b {
  font: 600 32px Manrope, sans-serif;
  color: #414b58
}

.chart-total span {
  font-size: 11px;
  color: #94A3B8
}

.bar-chart {
  padding: 0 18px
}

.bar-axis {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #64748B;
  font-size: 10px;
  margin-bottom: 13px
}

.bar-axis b {
  font-weight: 400;
  color: #94A3B8
}

.bar-row {
  display: grid;
  grid-template-columns: 66px 1fr 18px;
  gap: 7px;
  align-items: center;
  margin: 11px 0
}

.bar-row>span {
  font-size: 10px;
  color: #64748B
}

.bar-row>b {
  font: 11px Manrope, sans-serif;
  color: #64748B;
  text-align: right
}

.bar-track {
  height: 7px;
  border-radius: 6px;
  background: #EDF2F7;
  overflow: hidden
}

.bar-track i {
  display: block;
  height: 100%;
  border-radius: 6px;
  min-width: 7px
}

.bar-simple {
  background: linear-gradient(90deg, #6c83a0, #90a1b7)
}

.bar-meeting {
  background: linear-gradient(90deg, #2864A5, #64748B)
}

.analytics-divider {
  height: 1px;
  background: #EDF2F7;
  margin: 14px 17px
}

.analytics-metric {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 7px 18px;
  color: #64748B;
  font-size: 10px
}

.analytics-metric b {
  font: 600 12px Manrope, Noto Sans SC, sans-serif;
  color: #1E293B
}

.analytics-metric b small {
  font-size: 9px;
  font-weight: 400;
  color: #94A3B8
}

.modal-scrim {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 50;
  background: #17365D61;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeIn .16s ease-out
}

.modal {
  width: min(620px, 100%);
  max-height: min(90vh, 900px);
  overflow-y: auto;
  position: relative;
  background: #fff;
  border-radius: 13px;
  padding: 25px 27px 0;
  box-shadow: 0 24px 80px #17365D3b;
  animation: modalIn .2s ease-out
}

.modal-wide {
  width: min(920px, 100%)
}

.modal-close {
  position: absolute;
  right: 17px;
  top: 16px;
  background: #F5F7FA;
  color: #64748B
}

.modal-kicker {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-right: 37px
}

.draft-chip {
  font-size: 10px;
  color: #64748B;
  background: #F5F7FA;
  padding: 5px 7px;
  border-radius: 5px
}

.modal-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 10px 0 17px
}

.modal-title-row h2,
.modal>h2 {
  font-size: 23px;
  font-weight: 650;
  letter-spacing: -.025em;
  color: #353e4a;
  margin: 0
}

.modal-title-row p {
  font-size: 11px;
  color: #64748B;
  margin: 6px 0 0
}

.step-count {
  font: 600 18px Manrope, sans-serif;
  color: #526b8b
}

.step-count span {
  font-size: 11px;
  font-weight: 400;
  color: #94A3B8
}

.form-stepper {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-block: 1px solid #EDF2F7;
  padding: 11px 2px;
  margin-bottom: 16px
}

.step-node {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #94A3B8
}

.step-node span {
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid #EDF2F7;
  color: #94A3B8;
  font: 9px Manrope, sans-serif
}

.step-node b {
  font-size: 11px;
  font-weight: 500
}

.step-node.current {
  color: #1E293B
}

.step-node.current span,
.step-node.complete span {
  background: #EAF3FB;
  border-color: #CBD5E1;
  color: #2864A5
}

.step-node.current b {
  font-weight: 650
}

.form-modal-content {
  padding: 4px 0 17px;
  min-height: 250px
}

.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px
}

.form-grid label,
.review-comment-label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 11px;
  color: #1E293B
}

.form-grid label b,
.review-comment-label>b {
  color: #4480B8
}

.form-grid .field-full {
  grid-column: 1/-1
}

.form-grid input,
.form-grid select,
.form-grid textarea,
.review-comment-label textarea {
  width: 100%;
  border: 1px solid #EDF2F7;
  border-radius: 6px;
  background: #fff;
  padding: 9px 10px;
  color: #474f5a;
  font-size: 12px;
  outline: none
}

.form-grid input:focus,
.form-grid textarea:focus,
.form-grid select:focus,
.review-comment-label textarea:focus {
  border-color: #CBD5E1;
  box-shadow: 0 0 0 3px #2864A51a
}

.form-grid input::placeholder,
.form-grid textarea::placeholder,
.review-comment-label textarea::placeholder {
  color: #94A3B8
}

.ai-assist-card {
  display: flex;
  align-items: center;
  gap: 9px;
  background: #E2E8F0;
  border: 1px solid #E2E8F0;
  border-radius: 7px;
  padding: 10px
}

.ai-assist-icon {
  width: 25px;
  height: 25px;
  border-radius: 7px;
  background: #DCEAF7;
  color: #2864A5;
  display: grid;
  place-items: center
}

.ai-assist-card>div {
  display: flex;
  flex-direction: column;
  gap: 3px;
  flex: 1
}

.ai-assist-card b {
  font-size: 11px;
  color: #1E293B
}

.ai-assist-card small {
  font-size: 10px;
  color: #94A3B8
}

.risk-form,
.protection-form {
  max-width: 720px;
  margin: auto
}

.field-intro {
  margin-bottom: 12px
}

.field-intro h3 {
  font-size: 16px;
  color: #474f5a;
  margin: 5px 0
}

.field-intro p {
  font-size: 11px;
  color: #94A3B8;
  margin: 0
}

.toggle-rows,
.protection-options {
  border-top: 1px solid #EDF2F7
}

.toggle-row {
  min-height: 54px;
  border-bottom: 1px solid #EDF2F7;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 3px
}

.toggle-row>div:first-child {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.toggle-row b {
  font-size: 11px;
  color: #545c67;
  font-weight: 600
}

.toggle-row small {
  font-size: 10px;
  color: #94A3B8;
  line-height: 1.4
}

.segmented {
  display: flex;
  gap: 2px;
  border: 1px solid #EDF2F7;
  border-radius: 6px;
  padding: 2px;
  flex: none
}

.segmented button {
  border: 0;
  background: transparent;
  color: #94A3B8;
  font-size: 10px;
  padding: 4px 10px;
  border-radius: 4px
}

.segmented button.chosen-yes {
  background: #EDF2F7;
  color: #536b8a;
  font-weight: 600
}

.segmented button.chosen-no {
  background: #EAF3FB;
  color: #4480B8;
  font-weight: 600
}

.ai-fill-button {
  width: 100%;
  margin: 13px 0;
  border: 1px dashed #E9EEF5;
  background: #FCFDFE;
  color: #2864A5;
  padding: 9px 11px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 7px;
  text-align: left;
  font-size: 11px
}

.ai-fill-button span {
  margin-left: auto;
  font-size: 10px;
  color: #94A3B8
}

.eligibility {
  padding: 14px;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  background: #fff
}

.eligibility-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px
}

.eligibility-heading h3 {
  font-size: 13px;
  color: #434c57;
  margin: 4px 0 0
}

.eligibility .eyebrow {
  font-size: 9px
}

.eligibility>.muted {
  font-size: 10px;
  margin: 6px 0 9px
}

.small-copy {
  color: #94A3B8
}

.rule-list {
  display: flex;
  flex-direction: column
}

.rule-row {
  min-height: 31px;
  display: grid;
  grid-template-columns: 24px 17px minmax(0, 1.1fr) minmax(100px, .8fr);
  align-items: center;
  gap: 5px;
  border-top: 1px solid #F5F7FA;
  padding: 4px 0
}

.eligibility-compact .rule-row {
  grid-template-columns: 18px 15px 1fr;
  min-height: 29px
}

.rule-index {
  font: 10px Manrope, sans-serif;
  color: #94A3B8
}

.rule-check {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font: 9px Manrope, sans-serif
}

.rule-pass .rule-check {
  background: #EDF2F7;
  color: #5e7696
}

.rule-fail .rule-check {
  background: #F4F8FD;
  color: #4480B8
}

.rule-label {
  font-size: 10px;
  color: #1E293B;
  line-height: 1.4
}

.rule-hint {
  text-align: right;
  font-size: 9px;
  color: #94A3B8;
  line-height: 1.4
}

.rule-fail .rule-label {
  color: #64748B
}

.rule-outcome {
  margin-top: 8px;
  border-radius: 5px;
  padding: 7px;
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px
}

.outcome-simple {
  background: #F5F7FA;
  color: #1E293B
}

.outcome-meeting {
  background: #F4F8FD;
  color: #4480B8
}

.ai-disclaimer {
  font-size: 9px;
  color: #94A3B8;
  margin: 8px 0 0;
  line-height: 1.5
}

.modal-footer {
  position: sticky;
  bottom: 0;
  background: #fffffff7;
  border-top: 1px solid #EDF2F7;
  margin: 0 -27px;
  padding: 11px 27px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 58px
}

.modal-footer>div {
  display: flex;
  gap: 7px
}

.modal-privacy {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #94A3B8;
  font-size: 10px
}

.detail-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 2px 37px 17px 0;
  border-bottom: 1px solid #EDF2F7
}

.detail-head h2 {
  font-size: 19px;
  line-height: 1.5;
  margin: 6px 0;
  color: #353e49
}

.detail-tags {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap
}

.detail-tags>span:not(.status-badge) {
  font-size: 10px;
  color: #64748B;
  background: #F5F7FA;
  padding: 4px 6px;
  border-radius: 4px
}

.detail-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr;
  gap: 15px;
  padding: 16px 0
}

.detail-main {
  display: flex;
  flex-direction: column;
  gap: 12px
}

.detail-block,
.detail-side-card {
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  padding: 13px
}

.detail-block-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 11px
}

.detail-block-title h3,
.detail-side-card h3 {
  font-size: 12px;
  color: #535c67;
  margin: 0
}

.detail-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 15px
}

.detail-fields>div {
  display: flex;
  flex-direction: column;
  gap: 4px
}

.detail-fields small {
  font-size: 10px;
  color: #94A3B8
}

.detail-fields b {
  font-size: 11px;
  font-weight: 550;
  color: #1E293B
}

.detail-timeline {
  padding: 2px 0 0 5px
}

.timeline-item {
  position: relative;
  display: flex;
  gap: 10px;
  padding: 0 0 15px
}

.timeline-item:not(:last-child):before {
  content: "";
  position: absolute;
  left: 5px;
  top: 12px;
  bottom: 0;
  width: 1px;
  background: #EDF2F7
}

.timeline-dot {
  width: 11px;
  height: 11px;
  border: 1px solid #E9EEF5;
  border-radius: 50%;
  background: #fff;
  display: grid;
  place-items: center;
  position: relative;
  z-index: 1;
  flex: none
}

.timeline-dot i {
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #9ba6b3
}

.timeline-done .timeline-dot {
  border-color: #aab7c8;
  background: #F5F7FA
}

.timeline-done .timeline-dot i,
.timeline-active .timeline-dot i {
  background: #597191
}

.timeline-active .timeline-dot {
  border-color: #94a4b9;
  box-shadow: 0 0 0 3px #F5F7FA
}

.timeline-item>div {
  flex: 1
}

.timeline-title-row {
  display: flex;
  justify-content: space-between;
  gap: 9px
}

.timeline-title-row b {
  font-size: 11px;
  color: #1E293B
}

.timeline-title-row small {
  font-size: 10px;
  color: #94A3B8
}

.timeline-item p {
  font-size: 10px;
  color: #94A3B8;
  line-height: 1.5;
  margin: 4px 0 0
}

.detail-opinion {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 0;
  border-top: 1px solid #F5F7FA
}

.detail-opinion>div {
  flex: 1
}

.detail-opinion b {
  font-size: 10px;
  color: #1E293B
}

.detail-opinion p {
  font-size: 10px;
  color: #64748B;
  margin: 4px 0 0
}

.detail-opinion>small {
  font-size: 10px;
  color: #94A3B8
}

.detail-aside {
  display: flex;
  flex-direction: column;
  gap: 10px
}

.detail-aside .eligibility {
  padding: 11px
}

.detail-aside .eligibility-heading h3 {
  font-size: 11px
}

.detail-aside .rule-label,
.detail-aside .rule-index,
.detail-aside .rule-outcome {
  font-size: 9px
}

.detail-reviewers {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px
}

.detail-reviewers>div {
  display: flex;
  align-items: center;
  gap: 7px
}

.detail-reviewers>div span:nth-child(2) {
  font-size: 11px;
  color: #1E293B;
  flex: 1
}

.detail-reviewers small {
  font-size: 10px;
  color: #94A3B8
}

.assignment-control {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 10px
}

.assignment-control>small {
  font-size: 10px;
  color: #94A3B8
}

.assignment-control select {
  width: 100%
}

.urgent-detail-note {
  display: flex;
  align-items: center;
  gap: 7px;
  background: #EAF3FB;
  color: #a9814f;
  border-radius: 6px;
  padding: 9px;
  font-size: 10px
}

.detail-footer {
  display: flex;
  align-items: center;
  gap: 7px;
  border-top: 1px solid #EDF2F7;
  padding: 11px 0
}

.detail-footer>span {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 5px;
  color: #94A3B8;
  font-size: 10px
}

.review-modal-title {
  margin: 9px 0 5px !important
}

.review-modal-subtitle {
  font-size: 11px;
  color: #64748B;
  margin: 0 0 13px
}

.confidential-note {
  padding: 9px;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 6px;
  color: #6f7a88;
  font-size: 10px;
  display: flex;
  align-items: center;
  gap: 6px
}

.decision-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 13px 0
}

.decision-options button {
  border: 1px solid #EDF2F7;
  background: #fff;
  border-radius: 7px;
  padding: 10px;
  text-align: left;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px
}

.decision-options button.decision-selected {
  border-color: #a5b5c9;
  background: #F5F7FA
}

.decision-options button.decision-selected.decision-risk {
  border-color: #94BADF;
  background: #F4F8FD
}

.decision-icon {
  width: 23px;
  height: 23px;
  border-radius: 6px;
  display: grid;
  place-items: center;
  margin-bottom: 2px
}

.decision-icon.agree {
  background: #EDF2F7;
  color: #586e8a
}

.decision-icon.revise {
  background: #F4F8FD;
  color: #4480B8
}

.decision-options b {
  font-size: 11px;
  color: #1E293B
}

.decision-options small {
  font-size: 10px;
  color: #94A3B8
}

.review-comment-label {
  margin-bottom: 10px
}

.review-comment-label textarea {
  resize: vertical
}

.review-modal-disclaimer {
  font-size: 10px;
  color: #94A3B8;
  display: flex;
  align-items: center;
  gap: 5px;
  padding-bottom: 12px
}

.formal-document {
  max-width: 720px;
  margin: 18px auto 20px;
  background: #fff;
  padding: 38px 55px;
  border: 1px solid #EDF2F7;
  box-shadow: 0 3px 18px #17365D0f;
  color: #3a4049;
  min-height: 780px
}

.document-modal-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.document-modal-toolbar h2 {
  font-size: 18px;
  color: #404955;
  margin: 5px 0
}

.document-modal-toolbar>div:last-child {
  display: flex;
  gap: 7px
}

.formal-doc-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 2px solid #5E6A79;
  padding-bottom: 13px
}

.formal-logo {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #4a5769;
  font-size: 13px;
  font-weight: 650
}

.formal-logo>span {
  display: flex;
  flex-direction: column;
  gap: 2px
}

.formal-logo small {
  font: 9px Manrope, sans-serif;
  letter-spacing: .12em;
  color: #94A3B8
}

.formal-doc-code {
  font: 10px Manrope, Noto Sans SC, sans-serif;
  color: #94A3B8
}

.formal-doc-title {
  text-align: center;
  padding: 36px 0 24px
}

.formal-doc-title>span {
  font-size: 11px;
  color: #64748B;
  letter-spacing: .2em
}

.formal-doc-title h1 {
  font-family: "Noto Serif SC", Songti SC, serif;
  font-size: 26px;
  color: #38424e;
  letter-spacing: .11em;
  margin: 13px 0 5px
}

.meeting-doc-subtitle {
  font-size: 12px;
  color: #64748B
}

.formal-doc-table {
  border-top: 1px solid #E9EEF5;
  border-left: 1px solid #E9EEF5;
  display: grid;
  grid-template-columns: 1fr 1fr
}

.formal-doc-table>div {
  display: grid;
  grid-template-columns: 75px 1fr;
  border-bottom: 1px solid #E9EEF5;
  border-right: 1px solid #E9EEF5;
  min-height: 34px
}

.formal-doc-table span {
  display: flex;
  align-items: center;
  background: #F5F7FA;
  padding: 7px;
  font-size: 10px;
  color: #64748B;
  border-right: 1px solid #E9EEF5
}

.formal-doc-table b {
  display: flex;
  align-items: center;
  padding: 7px;
  font-size: 10px;
  font-weight: 500;
  color: #1E293B;
  line-height: 1.5
}

.formal-doc-section {
  margin-top: 18px
}

.formal-doc-section h3 {
  font-family: "Noto Serif SC", Songti SC, serif;
  font-size: 13px;
  color: #535d6a;
  border-bottom: 1px solid #EDF2F7;
  padding-bottom: 6px;
  margin: 0 0 8px
}

.formal-doc-section p {
  font-size: 11px;
  line-height: 2;
  color: #1E293B;
  text-align: justify;
  margin: 0
}

.formal-doc-section .minutes-note {
  color: #9a8a68;
  margin-top: 4px
}

.formal-conclusion {
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  padding: 12px;
  margin-top: 18px;
  display: flex;
  align-items: center;
  gap: 12px
}

.formal-conclusion>span {
  font-size: 11px;
  color: #64748B
}

.formal-conclusion>b {
  font-family: "Noto Serif SC", Songti SC, serif;
  font-size: 17px;
  color: #516074
}

.formal-conclusion small {
  margin-left: auto;
  font-size: 9px;
  color: #64748B;
  max-width: 200px;
  text-align: right;
  line-height: 1.6
}

.formal-signatures {
  display: flex;
  justify-content: space-between;
  margin-top: 30px;
  font-size: 10px;
  color: #1E293B
}

.formal-signatures span:first-child {
  display: flex;
  flex-direction: column;
  gap: 5px
}

.formal-signatures i {
  font-style: normal;
  color: #4480B8;
  font-size: 9px
}

.formal-doc-foot {
  text-align: center;
  border-top: 1px solid #EDF2F7;
  padding-top: 10px;
  margin-top: 25px;
  color: #94A3B8;
  font-size: 9px
}

.document-unconnected {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #a28658;
  font-size: 10px;
  padding: 9px 10px;
  background: #F5F7FA;
  border-radius: 6px;
  margin-bottom: 14px
}

.toast-message {
  position: fixed;
  bottom: 22px;
  left: 50%;
  transform: translate(-50%);
  z-index: 90;
  background: #273344;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, .12);
  box-shadow: 0 10px 32px #17365D3d;
  border-radius: 8px;
  padding: 10px 13px;
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 12px;
  max-width: min(600px, calc(100vw - 30px));
  animation: toastIn .2s ease-out
}

.toast-check {
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: #465e7e;
  color: #fff;
  display: grid;
  place-items: center;
  flex: none
}

.toast-message button {
  margin-left: 7px;
  border: 0;
  background: transparent;
  color: #bed0ca;
  display: grid;
  place-items: center
}

.mobile-menu,
.mobile-close,
.drawer-backdrop {
  display: none
}

@keyframes fadeIn {
  0% {
    opacity: 0
  }

  to {
    opacity: 1
  }
}

@keyframes modalIn {
  0% {
    opacity: .6;
    transform: translateY(8px) scale(.99)
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1)
  }
}

@keyframes toastIn {
  0% {
    opacity: 0;
    transform: translate(-50%, -10px)
  }

  to {
    opacity: 1;
    transform: translate(-50%)
  }
}

@media(max-width:1180px) {

  .workspace,
  .topbar {
    padding-inline: 25px
  }

  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }

  .dashboard-grid {
    grid-template-columns: minmax(0, 1.5fr) minmax(260px, 1fr)
  }

  .global-search {
    width: 190px
  }

  .review-layout {
    grid-template-columns: minmax(0, 1.5fr) minmax(215px, .8fr)
  }
}

@media(max-width:900px) {
  .sidebar {
    width: 220px
  }

  .main-column {
    margin-left: 220px
  }

  .dashboard-grid {
    grid-template-columns: 1fr
  }

  .dashboard-side {
    display: grid;
    grid-template-columns: 1fr 1fr
  }

  .review-layout {
    grid-template-columns: 1fr
  }

  .review-aside {
    display: grid;
    grid-template-columns: 1fr 1fr
  }

  .audit-content-grid {
    grid-template-columns: 1fr
  }

  .topbar,
  .workspace {
    padding-inline: 18px
  }

  .welcome-strip h1,
  .section-heading h1 {
    font-size: 25px
  }
}

@media(max-width:650px) {
  .sidebar {
    transform: translate(-100%);
    transition: transform .22s ease;
    width: 270px;
    z-index: 61;
    box-shadow: none
  }

  .sidebar.sidebar-open {
    transform: translate(0);
    box-shadow: 10px 0 40px #17365D29
  }

  .drawer-backdrop {
    display: block;
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 60;
    background: #17365D52
  }

  .main-column {
    margin-left: 0
  }

  .topbar {
    height: 58px;
    padding: 0 12px
  }

  .topbar-left {
    gap: 9px
  }

  .mobile-menu {
    display: inline-grid;
    width: 30px;
    height: 30px
  }

  .breadcrumbs {
    font-size: 11px;
    gap: 4px
  }

  .prototype-chip {
    display: none
  }

  .topbar-actions {
    gap: 7px
  }

  .global-search {
    width: 35px;
    border: 0;
    background: transparent;
    padding: 0 8px
  }

  .global-search input,
  .global-search kbd {
    display: none
  }

  .notification-button {
    width: 31px
  }

  .seat-select {
    max-width: 78px;
    padding: 4px;
    font-size: 10px
  }

  .workspace {
    padding: 18px 12px 12px
  }

  .welcome-strip {
    min-height: 0;
    padding: 3px 2px 15px;
    gap: 8px
  }

  .welcome-strip h1,
  .section-heading h1 {
    font-size: 23px
  }

  .welcome-strip p {
    max-width: 270px;
    font-size: 11px
  }

  .welcome-actions {
    padding-top: 2px;
    align-items: flex-end
  }

  .welcome-stamp {
    display: none
  }

  .button {
    font-size: 11px;
    padding: 0 9px
  }

  .compliance-banner {
    align-items: flex-start;
    padding: 10px;
    margin-bottom: 12px
  }

  .compliance-banner p {
    line-height: 1.6
  }

  .compliance-banner .text-button,
  .banner-law {
    display: none
  }

  .metric-grid {
    gap: 8px;
    margin-bottom: 12px
  }

  .metric-card {
    min-height: 118px;
    padding: 11px
  }

  .metric-top {
    margin-bottom: 8px
  }

  .metric-value {
    font-size: 28px
  }

  .metric-foot {
    font-size: 10px
  }

  .dashboard-side {
    grid-template-columns: 1fr
  }

  .panel-heading {
    padding: 14px
  }

  .project-panel .panel-heading {
    padding-bottom: 12px
  }

  .data-table {
    min-width: 680px
  }

  .dashboard-grid {
    gap: 10px
  }

  .ai-boundary {
    align-items: flex-start
  }

  .boundary-tag {
    display: none
  }

  .page-footer {
    gap: 8px;
    flex-direction: column;
    line-height: 1.4
  }

  .section-heading {
    align-items: flex-start;
    margin: 4px 1px 15px;
    gap: 9px
  }

  .section-heading p {
    max-width: 90%
  }

  .heading-action {
    align-self: center
  }

  .compact-banner {
    align-items: center
  }

  .compact-banner .banner-law {
    display: none
  }

  .list-toolbar {
    align-items: flex-start;
    flex-direction: column;
    padding: 10px 11px;
    gap: 8px
  }

  .filter-tabs {
    width: 100%;
    overflow: auto
  }

  .list-actions {
    width: 100%
  }

  .table-search {
    flex: 1
  }

  .table-search input {
    width: 100%
  }

  .full-table {
    min-width: 820px
  }

  .review-rule-banner {
    align-items: flex-start;
    padding: 10px
  }

  .rule-chip {
    display: none
  }

  .review-card {
    padding: 12px
  }

  .review-meta {
    gap: 8px
  }

  .review-rule-mini {
    align-items: flex-start
  }

  .review-rule-mini .route-pill {
    font-size: 10px;
    padding: 4px
  }

  .reviewer-strip {
    align-items: flex-start;
    flex-direction: column;
    gap: 7px
  }

  .reviewer-avatars {
    gap: 8px;
    flex-wrap: wrap
  }

  .assign-inline {
    flex-wrap: wrap
  }

  .assign-inline>span {
    width: 100%
  }

  .assign-inline select {
    flex: 1;
    min-width: 90px
  }

  .review-aside {
    grid-template-columns: 1fr
  }

  .meeting-config-strip {
    flex-wrap: wrap
  }

  .meeting-config-strip>div:nth-child(2) {
    min-width: calc(100% - 60px)
  }

  .month-picker {
    width: 100%;
    justify-content: flex-end
  }

  .meeting-overview-grid {
    grid-template-columns: 1fr
  }

  .meeting-item {
    align-items: flex-start;
    flex-wrap: wrap
  }

  .meeting-item-main {
    min-width: 100%
  }

  .meeting-item-meta {
    padding-left: 17px
  }

  .meeting-item-actions {
    margin-left: auto
  }

  .document-template-grid {
    grid-template-columns: 1fr
  }

  .document-template {
    gap: 11px;
    padding: 11px
  }

  .document-preview {
    width: 100px;
    min-height: 140px
  }

  .template-info strong {
    font-size: 12px
  }

  .audit-summary-grid {
    gap: 7px
  }

  .audit-stat {
    padding: 9px;
    grid-template-columns: 25px 1fr;
    grid-template-rows: 20px 26px 25px;
    column-gap: 6px
  }

  .audit-stat-icon {
    width: 24px;
    height: 24px;
    grid-row: 1/3
  }

  .audit-stat>span:last-child {
    grid-column: 1/3;
    line-height: 1.4
  }

  .audit-stat>b {
    font-size: 20px
  }

  .audit-prototype-warning {
    align-items: flex-start
  }

  .local-only {
    display: none
  }

  .audit-log-list {
    padding: 0 11px
  }

  .audit-log-row {
    gap: 7px
  }

  .audit-event-content>div {
    flex-wrap: wrap
  }

  .modal-scrim {
    padding: 8px;
    align-items: flex-end
  }

  .modal {
    width: 100%;
    max-height: 94vh;
    border-radius: 13px 13px 7px 7px;
    padding: 21px 16px 0
  }

  .modal-wide {
    width: 100%
  }

  .modal-footer {
    margin: 0 -16px;
    padding: 10px 16px
  }

  .form-grid {
    grid-template-columns: 1fr;
    gap: 9px
  }

  .form-grid .field-full {
    grid-column: auto
  }

  .form-stepper {
    gap: 3px
  }

  .step-node {
    gap: 4px;
    align-items: flex-start
  }

  .step-node b {
    font-size: 9px;
    line-height: 1.4
  }

  .step-node span {
    width: 19px;
    height: 19px
  }

  .toggle-row {
    align-items: flex-start
  }

  .toggle-row>div:first-child {
    max-width: 72%
  }

  .toggle-row b {
    font-size: 10px
  }

  .toggle-row small {
    font-size: 9px
  }

  .segmented button {
    padding: 4px 7px
  }

  .rule-row {
    grid-template-columns: 17px 15px 1fr !important
  }

  .rule-hint {
    display: none
  }

  .modal-privacy {
    font-size: 9px
  }

  .detail-head {
    padding-right: 32px
  }

  .detail-head h2 {
    font-size: 16px
  }

  .detail-grid {
    grid-template-columns: 1fr;
    gap: 10px
  }

  .detail-aside {
    order: -1
  }

  .detail-fields {
    gap: 8px
  }

  .detail-footer {
    flex-wrap: wrap
  }

  .detail-footer>span {
    flex-basis: 100%
  }

  .document-modal-toolbar {
    align-items: flex-start;
    flex-direction: column
  }

  .document-modal-toolbar h2 {
    font-size: 14px
  }

  .formal-document {
    padding: 23px 17px;
    min-height: 0
  }

  .formal-doc-title {
    padding: 25px 0 18px
  }

  .formal-doc-title h1 {
    font-size: 20px
  }

  .formal-doc-table>div {
    grid-template-columns: 61px 1fr
  }

  .formal-doc-table span,
  .formal-doc-table b {
    padding: 5px;
    font-size: 9px
  }

  .formal-conclusion {
    flex-wrap: wrap
  }

  .formal-conclusion small {
    max-width: none;
    text-align: left;
    width: 100%;
    margin: 0
  }

  .notice-popover {
    position: fixed;
    right: 10px;
    top: 57px;
    width: min(325px, calc(100vw - 20px))
  }

  .table-foot {
    padding: 0 10px
  }

  .table-foot span:last-child {
    display: none
  }

  .mobile-close {
    display: inline-grid;
    margin-left: auto
  }

  .institution-switch {
    margin-bottom: 22px
  }
}

@media print {
  body {
    background: #fff !important
  }

  .sidebar,
  .topbar,
  .workspace,
  .modal-close,
  .document-modal-toolbar,
  .document-unconnected,
  .modal-footer,
  .toast-message {
    display: none !important
  }

  .modal-scrim {
    position: static;
    inset: auto;
    padding: 0;
    background: #fff;
    display: block;
    -webkit-backdrop-filter: none;
    backdrop-filter: none
  }

  .modal {
    max-height: none;
    overflow: visible;
    width: 100%;
    border: 0;
    border-radius: 0;
    padding: 0;
    box-shadow: none
  }

  .formal-document {
    max-width: none;
    width: 100%;
    min-height: 0;
    margin: 0;
    padding: 25mm 22mm;
    border: 0;
    box-shadow: none
  }

  .formal-doc-foot {
    margin-top: 22px
  }

  @page {
    size: A4;
    margin: 0
  }
}

.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0
}

.meeting-item-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  flex-wrap: wrap
}

.meeting-item-actions .text-button {
  font-size: 11px;
  padding: 4px
}

.consultation-note {
  border-color: #ECEFF3;
  background: #EAF3FB
}

.consultation-note p {
  font-size: 12px;
  line-height: 1.55;
  color: #6f647b
}

.consultation-note small {
  font-size: 11px;
  line-height: 1.5;
  color: #998da5
}

.urgent-detail-note small {
  display: block;
  margin-top: 5px;
  line-height: 1.5;
  color: #94713c
}

.ai-risk-button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-top: 10px;
  padding: 7px 10px;
  border: 1px solid #CBD5E1;
  border-radius: 6px;
  background: #E2E8F0;
  color: #2864A5;
  font-size: 12px;
  cursor: pointer
}

.ai-risk-button span {
  color: #64748B;
  font-size: 10px
}

.ai-risk-button:hover {
  background: #EDF2F7
}

.field-intro .ai-risk-button {
  align-self: flex-start
}

.ai-review-draft {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 12px 0 7px;
  padding: 7px 10px;
  border: 1px solid #C9DCD9;
  border-radius: 6px;
  background: #FCFDFE;
  color: #3d5575;
  font-size: 12px;
  cursor: pointer
}

.ai-review-draft span {
  color: #64748B;
  font-size: 10px
}

.ai-review-draft:hover {
  background: #F5F7FA
}

:root {
  --ink: #1E293B;
  --ink-2: #1E293B;
  --muted: #64748B;
  --line: #EDF2F7;
  --canvas: #F5F7FA;
  --teal: #2864A5;
  --teal-dark: #1F528A;
  --teal-soft: #EAF3FB;
  --shadow: 0 10px 34px rgba(30, 41, 59, .07)
}

body {
  background: #F5F7FA;
  color: #1E293B
}

.sidebar {
  background: #fff;
  border-right-color: #EDF2F7
}

.topbar {
  border-bottom-color: #EDF2F7
}

.nav-item.active {
  background: #EAF3FB;
  color: #2864A5
}

.nav-item:hover {
  background: #E2E8F0;
  color: #1E293B
}

.nav-count {
  background: #DCEAF7;
  color: #2864A5
}

.institution-icon {
  background: #EAF3FB;
  color: #2864A5
}

.secure-note {
  background: #F5F7FA;
  border-color: #EDF2F7
}

.secure-icon {
  background: #DCEAF7;
  color: #2864A5
}

.secure-note strong {
  color: #1E293B
}

.secure-note span {
  color: #64748B
}

.brand-mark {
  background: var(--teal);
  box-shadow: 0 3px 8px #2864A52e
}

.compliance-banner {
  background: #E2E8F0;
  border-color: #E2E8F0
}

.compliance-symbol {
  background: #E2E8F0;
  color: #2864A5
}

.compliance-banner strong,
.compliance-banner p b {
  color: #1E293B
}

.compliance-banner p {
  color: #64748B
}

.metric-featured {
  background: #E2E8F0;
  border-color: #E2E8F0
}

.icon-ink,
.icon-teal {
  background: #DCEAF7;
  color: #2864A5
}

.welcome-stamp b {
  color: #1F528A
}

.project-monogram {
  background: #E2E8F0;
  color: #64748B
}

.table-route.simple {
  color: #2864A5;
  background: #EAF3FB
}

.meeting-date-mark {
  background: #EAF3FB;
  color: #2864A5
}

.threshold-track>span {
  background: linear-gradient(90deg, #2864A5, #6A9BCB)
}

.icon-button:hover,
.icon-button.is-open {
  background: #EAF3FB;
  color: #1F528A
}

.dashboard-side .panel,
.panel {
  border-color: #EDF2F7;
  box-shadow: 0 2px 10px #1E293B09
}

.data-table th {
  background: #F5F7FA;
  border-color: #EDF2F7
}

.data-table td {
  border-bottom-color: #EDF2F7
}

.data-table tbody tr:hover {
  background: #FCFDFE
}

.welcome-strip h1,
.section-heading h1 {
  color: #1E293B
}

.panel-heading h2 {
  color: #1E293B
}

.button-primary {
  background: #2864A5;
  border-color: #2864A5;
  box-shadow: 0 3px 9px #2864A529
}

.button-primary:hover {
  background: #1F528A;
  border-color: #1F528A
}

.notice-item p,
.data-table td,
.project-cell strong,
.owner-cell strong,
.metric-label,
.welcome-strip p,
.section-heading p {
  line-height: 1.55
}

.attachment-uploader {
  margin-top: 18px;
  padding: 17px 18px;
  background: linear-gradient(145deg, #E2E8F0, #fff);
  border: 1px solid #EDF2F7;
  border-radius: 11px
}

.attachment-uploader-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px
}

.attachment-uploader-top h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 5px 0 0;
  color: #1E293B;
  font-size: 16px;
  font-weight: 650
}

.attachment-optional {
  padding: 3px 7px;
  border-radius: 20px;
  background: #EAF3FB;
  color: #64748B;
  font-size: 10px;
  font-weight: 550
}

.attachment-counter {
  padding: 5px 9px;
  border: 1px solid #EDF2F7;
  border-radius: 7px;
  background: #fff;
  color: #64748B;
  font-size: 11px;
  font-weight: 650;
  white-space: nowrap
}

.attachment-description {
  margin: 7px 0 12px;
  color: #94A3B8;
  font-size: 12px;
  line-height: 1.6
}

.attachment-dropzone {
  position: relative;
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 76px;
  padding: 13px 15px;
  border: 1px dashed #CBD5E1;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  transition: border-color .16s, background .16s, box-shadow .16s
}

.attachment-dropzone:hover,
.attachment-dropzone.is-dragging {
  border-color: #2864A5;
  background: #F4F8FD;
  box-shadow: 0 0 0 3px #2864A514
}

.attachment-dropzone.is-full {
  background: #F5F7FA;
  border-color: #E9EEF5;
  cursor: not-allowed
}

.attachment-dropzone:focus-within {
  outline: 3px solid rgba(40, 100, 165, .2);
  outline-offset: 2px
}

.attachment-file-input {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer
}

.attachment-file-input:disabled {
  cursor: not-allowed
}

.attachment-upload-icon,
.attachment-file-icon {
  display: grid;
  place-items: center;
  flex: none;
  color: #2864A5;
  background: #DCEAF7;
  border-radius: 9px
}

.attachment-upload-icon {
  width: 39px;
  height: 39px
}

.attachment-upload-copy {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0
}

.attachment-upload-copy b {
  color: #1E293B;
  font-size: 13px;
  font-weight: 650
}

.attachment-upload-copy em {
  color: #2864A5;
  font-style: normal;
  text-decoration: underline;
  text-underline-offset: 2px
}

.attachment-upload-copy small {
  color: #94A3B8;
  font-size: 11px;
  line-height: 1.5
}

.attachment-prototype-note {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 10px 1px 0;
  color: #94A3B8;
  font-size: 11px;
  line-height: 1.55
}

.attachment-prototype-note svg {
  flex: none;
  margin-top: 1px;
  color: #64748B
}

.attachment-error {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 9px 1px 0;
  color: #B42318;
  font-size: 11px;
  line-height: 1.5
}

.attachment-error svg {
  flex: none;
  margin-top: 1px
}

.attachment-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px
}

.attachment-item {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  background: #fff
}

.attachment-file-icon {
  width: 30px;
  height: 30px;
  border-radius: 7px;
  background: #E2E8F0;
  color: #64748B
}

.attachment-file-copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
  flex: 1
}

.attachment-file-copy b {
  overflow: hidden;
  color: #1E293B;
  font-size: 11px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap
}

.attachment-file-copy small {
  color: #94A3B8;
  font-size: 10px
}

.attachment-remove {
  width: 27px;
  height: 27px;
  display: grid;
  place-items: center;
  flex: none;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: #94A3B8
}

.attachment-remove:hover {
  background: #EAF3FB;
  color: #B42318
}

.detail-attachments {
  margin-top: 12px;
  padding: 11px 12px;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  background: #FCFDFE
}

.detail-attachments-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 7px;
  color: #1E293B;
  font-size: 12px
}

.detail-attachments-title span {
  color: #94A3B8;
  font-size: 10px
}

.detail-attachment-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 0;
  border-top: 1px solid #EDF2F7;
  color: #64748B
}

.detail-attachment-row>div {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0
}

.detail-attachment-row b {
  overflow: hidden;
  color: #1E293B;
  font-size: 11px;
  font-weight: 550;
  text-overflow: ellipsis;
  white-space: nowrap
}

.detail-attachment-row small {
  color: #94A3B8;
  font-size: 10px
}

@media(max-width:680px) {
  .attachment-list {
    grid-template-columns: 1fr
  }

  .attachment-uploader {
    padding: 14px
  }

  .attachment-dropzone {
    align-items: flex-start
  }

  .attachment-upload-copy small {
    font-size: 10px
  }
}

.attachment-uploader {
  grid-column: 1/-1
}

.dashboard-grid-applicant {
  grid-template-columns: minmax(0, 1fr)
}

.roster-page {
  display: grid;
  gap: 16px
}

.roster-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  padding: 0 18px 18px
}

.roster-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #1E293B;
  font-size: 13px;
  font-weight: 650
}

.roster-field input {
  width: 100%;
  height: 42px;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  background: #fff;
  padding: 0 12px;
  color: #1E293B;
  font: inherit;
  font-weight: 450;
  outline: none
}

.roster-field input:focus {
  border-color: #2864A5;
  box-shadow: 0 0 0 3px #2864A51f
}

.roster-field input::placeholder {
  color: #94A3B8
}

.roster-form-actions {
  grid-column: 1/-1;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px
}

.roster-note {
  margin: 0 18px 16px;
  padding: 10px 12px;
  border-radius: 8px;
  background: #F5F7FA;
  color: #64748B;
  font-size: 12px;
  line-height: 1.6
}

.roster-count {
  color: #64748B;
  font-size: 12px
}

.roster-table-panel {
  overflow: hidden
}

@media(max-width:650px) {
  .roster-form-grid {
    grid-template-columns: 1fr
  }

  .roster-form-actions {
    justify-content: stretch
  }

  .roster-form-actions .button {
    width: 100%
  }

  .roster-table-panel .table-wrap {
    overflow-x: auto
  }

  .roster-table-panel .data-table {
    min-width: 650px
  }
}

.roster-edit-button {
  white-space: nowrap
}

.eligibility-panel {
  background: #fff;
  border: 1px solid #EEF0F2;
  border-radius: 8px;
  padding: 16px 18px 14px;
  box-shadow: 0 1px 3px #232c330f
}

.eligibility-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px
}

.eligibility-eyebrow {
  display: block;
  font-size: 10px;
  letter-spacing: 1.2px;
  color: #94A3B8;
  font-weight: 600
}

.eligibility-title {
  margin: 3px 0 0;
  font-size: 15px;
  font-weight: 700;
  color: #2b333c
}

.eligibility-head .route-pill {
  background: #EAF3FB;
  color: #526173;
  border-radius: 20px;
  padding: 3px 10px;
  font-size: 10px;
  font-weight: 600
}

.eligibility-desc {
  margin: 8px 0 10px;
  font-size: 11px;
  color: #64748B;
  line-height: 1.5
}

.eligibility-list {
  display: flex;
  flex-direction: column;
  border-top: 1px solid #F0F2F3
}

.eligibility-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 2px;
  border-bottom: 1px solid #F0F2F3
}

.eligibility-index {
  width: 22px;
  font-size: 11px;
  font-weight: 700;
  color: #b4bcc3;
  letter-spacing: .5px
}

.eligibility-badge {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: none
}

.eligibility-pass .eligibility-badge {
  background: #EDF2F7;
  color: #6e8b6e
}

.eligibility-fail .eligibility-badge {
  background: #EAF3FB;
  color: sienna
}

.eligibility-label {
  font-size: 12px;
  color: #434c57
}

.eligibility-fail .eligibility-label {
  color: sienna
}

.eligibility-panel .rule-outcome {
  margin-top: 10px;
  border-radius: 6px;
  padding: 9px 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px
}

.outcome-icon {
  display: flex;
  color: #e7b33a
}

.eligibility-panel .outcome-simple {
  background: #F5F7FA;
  color: #52745b
}

.eligibility-panel .outcome-simple .outcome-icon {
  color: #6e8b6e
}

.eligibility-panel .outcome-meeting {
  background: #F4F8FD;
  color: sienna
}

.eligibility-note {
  margin: 9px 0 0;
  font-size: 10px;
  color: #94A3B8;
  line-height: 1.5
}

.eligibility-compact {
  padding: 12px 14px 10px
}

.eligibility-compact .eligibility-title {
  font-size: 13px
}

.eligibility-compact .eligibility-row {
  padding: 6px 2px
}

.eligibility-compact .eligibility-desc,
.eligibility-compact .eligibility-note {
  font-size: 10px
}

.modal-close,
.mobile-close,
.toast-message button {
  width: 30px;
  height: 26px;
  padding: 0;
  border: 1px solid #64748B;
  border-radius: 5px;
  background: #F5F7FA;
  color: #1E293B;
  box-shadow: inset -1px -1px #00000014;
  transition: background .15s ease, border-color .15s ease, color .15s ease
}

.modal-close:hover,
.mobile-close:hover,
.toast-message button:hover {
  background: #e9ebed;
  border-color: #1E293B;
  color: #333
}

.modal-close svg,
.mobile-close svg,
.toast-message button svg {
  width: 13px;
  height: 13px;
  stroke-width: 1.5
}

.doc-option-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 11px;
  color: #1E293B;
  justify-content: center
}

.option-pair {
  display: flex;
  gap: 16px;
  font-size: 12px;
  color: #474f5a
}

.mini-option {
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  font-size: 12px;
  color: #474f5a
}

.mini-option input {
  width: 14px;
  height: 14px;
  accent-color: #2864A5
}

.period-pair {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #474f5a
}

.period-pair select {
  width: auto;
  min-width: 78px
}

.period-dash {
  color: #64748B
}

.doc-checklist {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 12px;
  color: #474f5a;
  border: 1px solid #EDF2F7;
  border-radius: 6px;
  background: #fff;
  padding: 10px 12px
}

.doc-checklist b {
  font-size: 11px;
  color: #1E293B
}

.doc-checklist label {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 12px;
  color: #474f5a;
  cursor: pointer
}

.doc-checklist input {
  width: 14px;
  height: 14px;
  margin-top: 2px;
  accent-color: #2864A5
}

.doc-checklist small {
  font-size: 10px;
  color: #64748B;
  line-height: 1.5
}

.doc-option-row .option-pair .mini-option {
  flex-direction: row;
  align-items: center;
  gap: 5px
}

.doc-checklist label {
  flex-direction: row;
  align-items: flex-start;
  gap: 6px
}

.doc-checklist input {
  margin-top: 2px
}

.view-only-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 14px;
  border: 1px dashed #c9a227;
  border-radius: 999px;
  background: #c9a22714;
  color: #a3861c;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em
}

.listing-panel .table-foot {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: space-between
}

.listing-panel .table-foot>span {
  flex: none;
  white-space: nowrap
}

.listing-panel .table-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none
}

.listing-panel .table-pagination .page-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: #586270;
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .15s ease
}

.listing-panel .table-pagination .page-btn:hover:not(.disabled):not(.active) {
  border-color: var(--teal);
  color: var(--teal)
}

.listing-panel .table-pagination .page-btn.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  font-weight: 600
}

.listing-panel .table-pagination .page-btn.disabled {
  opacity: .4;
  pointer-events: none
}

.row-disabled {
  opacity: .55;
  background: #FCFDFE
}

.status-chip {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 999px;
  white-space: nowrap;
  display: inline-flex;
  align-items: center
}

.status-ok {
  background: var(--teal-soft);
  color: var(--teal-dark)
}

.status-warn {
  background: #F5F7FA;
  color: #a9712e
}

.table-actions {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap
}

.roster-delete-button {
  color: var(--red)
}

.roster-delete-button:hover {
  border-color: var(--red);
  background: var(--red-soft)
}

.roster-field-wide {
  grid-column: 1/-1
}

.roster-field-label {
  color: #1E293B;
  font-size: 13px;
  font-weight: 650
}

.signature-upload-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  min-height: 42px;
  padding: 8px 12px;
  border: 1px dashed #EDF2F7;
  border-radius: 8px;
  background: #FCFDFE
}

.signature-preview {
  max-height: 64px;
  max-width: 160px;
  border: 1px solid #EDF2F7;
  border-radius: 6px;
  background: #fff;
  padding: 4px;
  object-fit: contain
}

.signature-thumb {
  max-height: 40px;
  max-width: 96px;
  border: 1px solid #e6eef8;
  border-radius: 6px;
  background: #fff;
  padding: 2px;
  object-fit: contain
}

.review-signature-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0 2px;
  border-top: 1px dashed var(--line)
}

.review-signature-row .small-label {
  flex: none;
  color: var(--muted)
}

.review-signature-row .muted {
  font-size: 12px;
  color: var(--muted)
}

.signature-review {
  height: 44px;
  max-width: 130px;
  object-fit: contain;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 4px 8px
}

.signature-inline {
  height: 34px;
  max-width: 110px;
  object-fit: contain;
  margin: 8px 0 2px;
  display: block;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  padding: 3px 6px
}

.detail-opinion .signature-inline {
  float: right;
  margin: 0 0 4px 10px
}

.audit-log-panel .table-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 17px;
  border-top: 1px solid #F5F7FA;
  background: #FCFDFE;
  font-size: 12px;
  color: #94A3B8
}

.audit-log-panel .table-foot>span {
  flex: none;
  white-space: nowrap
}

.audit-log-panel .table-foot>span b {
  color: #586270;
  font-weight: 600
}

.audit-log-panel .table-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none
}

.audit-log-panel .table-pagination .page-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: #586270;
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .15s ease
}

.audit-log-panel .table-pagination .page-btn:hover:not(.disabled):not(.active) {
  border-color: var(--teal);
  color: var(--teal)
}

.audit-log-panel .table-pagination .page-btn.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  font-weight: 600
}

.audit-log-panel .table-pagination .page-btn.disabled {
  opacity: .4;
  pointer-events: none
}

.meeting-queue-panel .table-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 17px;
  border-top: 1px solid #F5F7FA;
  background: #FCFDFE;
  font-size: 12px;
  color: #94A3B8
}

.meeting-queue-panel .table-foot>span {
  flex: none;
  white-space: nowrap
}

.meeting-queue-panel .table-foot>span b {
  color: #586270;
  font-weight: 600
}

.meeting-queue-panel .table-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none
}

.meeting-queue-panel .table-pagination .page-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: #586270;
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .15s ease
}

.meeting-queue-panel .table-pagination .page-btn:hover:not(.disabled):not(.active) {
  border-color: var(--teal);
  color: var(--teal)
}

.meeting-queue-panel .table-pagination .page-btn.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  font-weight: 600
}

.meeting-queue-panel .table-pagination .page-btn.disabled {
  opacity: .4;
  pointer-events: none
}

.meeting-manage-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 16px;
  padding: 6px;
  background: #F5F7FA;
  border-radius: 12px;
  width: fit-content;
  max-width: 100%
}

.meeting-manage-tabs button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: transparent;
  color: #1E293B;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s ease
}

.meeting-manage-tabs button:hover {
  color: var(--teal)
}

.meeting-manage-tabs button.selected {
  background: #fff;
  border-color: #EDF2F7;
  box-shadow: 0 1px 3px #17365D14;
  color: var(--teal)
}

.meeting-manage-tabs button span {
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: var(--teal);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center
}

.config-row {
  display: flex;
  align-items: flex-end;
  gap: 14px;
  flex-wrap: wrap;
  padding: 14px 0;
  border-bottom: 1px solid var(--line)
}

.config-row:last-of-type {
  border-bottom: none
}

.config-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600
}

.config-field input,
.config-field select {
  min-width: 170px;
  height: 38px;
  padding: 0 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  color: #17365D
}

.option-pair {
  display: inline-flex;
  gap: 4px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #FCFDFE
}

.mini-option {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 10px;
  font-size: 12px;
  color: #586270;
  cursor: pointer;
  border-radius: 6px
}

.mini-option:has(input:checked) {
  background: #fff;
  color: var(--teal);
  font-weight: 600;
  box-shadow: 0 1px 3px #17365D14
}

.mini-option input {
  accent-color: var(--teal)
}

.member-chip-list {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap
}

.member-chip {
  padding: 2px 8px;
  border-radius: 999px;
  background: #F5F7FA;
  color: #2f6b4f;
  font-size: 11px;
  font-weight: 600
}

.select-block {
  margin: 14px 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #FCFDFE
}

.select-block-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  font-size: 13px;
  color: #17365D
}

.select-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px;
  max-height: 240px;
  overflow-y: auto
}

.select-card {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
  transition: all .15s ease
}

.select-card:hover {
  border-color: #c9ddd2
}

.select-card.selected {
  border-color: var(--teal);
  background: #F5F7FA;
  box-shadow: 0 0 0 1px var(--teal) inset
}

.select-card input {
  accent-color: var(--teal);
  margin-top: 3px
}

.select-card b {
  font-size: 13px;
  color: #17365D;
  display: block
}

.select-card small {
  font-size: 11px;
  color: var(--muted);
  display: block;
  margin-top: 2px
}

.inline-note {
  margin: 10px 0;
  padding: 10px 12px;
  border: 1px dashed #C9DDD2;
  border-radius: 8px;
  background: #F5F7FA;
  font-size: 12px;
  color: #3a6b50
}

.hold-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-top: 12px
}

.compact-banner {
  margin: 0 0 16px
}

.text-danger {
  color: #B42318 !important
}

.slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 12px
}

.slot-card {
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  transition: all .15s ease
}

.slot-card:hover {
  border-color: #c9ddd2
}

.slot-card.selected {
  border-color: var(--teal);
  background: #F5F7FA
}

.slot-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px
}

.slot-card-head b {
  font-size: 14px;
  color: #17365D
}

.slot-time {
  font-size: 12px;
  font-weight: 600;
  color: var(--teal);
  background: #F5F7FA;
  padding: 3px 8px;
  border-radius: 999px
}

.slot-card-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  margin-bottom: 12px
}

.cutoff-text {
  color: #946200;
  font-weight: 600
}

.cutoff-text.cutoff-done {
  color: #94A3B8;
  font-weight: 500
}

.slot-card-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px
}

.slot-selected-tag {
  font-size: 12px;
  font-weight: 700;
  color: var(--teal)
}

.held-detail {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed var(--line);
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%
}

.held-detail-row {
  display: flex;
  gap: 8px;
  font-size: 12px;
  color: #586270
}

.held-detail-row b {
  flex: none;
  min-width: 64px;
  color: #17365D
}

.comment-form-title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 8px;
  font-size: 13px;
  color: #17365D
}

.comment-form-row {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  flex-wrap: wrap
}

.comment-form-row label {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 11px;
  color: var(--muted);
  font-weight: 600
}

.comment-form-row select,
.comment-form-row textarea {
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  font-size: 13px;
  color: #17365D;
  font-family: inherit
}

.comment-form-row select {
  min-width: 150px;
  height: 36px
}

.comment-form-row textarea {
  flex: 1;
  min-width: 220px;
  resize: vertical
}

.held-comments {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
  width: 100%
}

.comment-card,
.document-card {
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #FCFDFE
}

.comment-card-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px
}

.comment-card-title b {
  font-size: 13px;
  color: #17365D
}

.comment-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 12px;
  padding: 4px 0;
  border-bottom: 1px dashed #F5F7FA
}

.comment-item:last-of-type {
  border-bottom: none
}

.comment-author {
  flex: none;
  font-weight: 650;
  color: #17365D;
  min-width: 56px
}

.decision-tag {
  flex: none;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600
}

.decision-tag.agree {
  background: #EDF2F7;
  color: #18794E
}

.decision-tag.disagree {
  background: #EAF3FB;
  color: #B42318
}

.decision-tag.exempt {
  background: #FFF4D6;
  color: #946200
}

.comment-text {
  color: #586270;
  flex: 1
}

.document-content {
  margin: 6px 0 0;
  padding: 10px;
  border: 1px dashed #E9EEF5;
  border-radius: 8px;
  background: #fff;
  font-size: 12px;
  line-height: 1.7;
  white-space: pre-wrap;
  color: #3a4550;
  max-height: 260px;
  overflow-y: auto
}

.collect-config-panel,
.slot-list-panel {
  margin: 2px 6px 18px
}

.collect-config-panel .panel-heading,
.slot-list-panel .panel-heading {
  padding: 20px 24px 16px
}

.collect-config-panel .config-row {
  padding: 16px 6px
}

.slot-list-panel .table-wrap {
  padding: 4px 10px 10px
}

.slot-list-panel .data-table th {
  padding: 0 16px
}

.slot-list-panel .data-table td {
  padding: 13px 16px;
  height: 78px
}

.slot-list-panel .data-table th:first-child,
.slot-list-panel .data-table td:first-child {
  padding-left: 20px
}

.slot-list-panel .data-table th:last-child,
.slot-list-panel .data-table td:last-child {
  padding-right: 20px
}

.slot-list-panel .project-cell {
  gap: 13px;
  min-width: 320px
}

.slot-list-panel .project-monogram {
  width: 100px;
  height: 46px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  overflow: hidden
}

.slot-list-panel .project-cell strong {
  font-size: 13px
}

.slot-list-panel .project-cell small {
  font-size: 11px
}

.hold-panel,
.adhoc-panel {
  margin: 2px 6px 18px
}

.hold-panel .panel-heading,
.adhoc-panel .panel-heading {
  padding: 20px 24px 16px
}

.hold-panel .config-row,
.adhoc-panel .config-row {
  padding: 16px 6px
}

.hold-panel .inline-note,
.adhoc-panel .inline-note {
  margin: 8px 6px 6px
}

.hold-panel .select-block,
.adhoc-panel .select-block {
  margin: 14px 6px;
  padding: 16px 14px
}

.hold-panel .select-grid,
.adhoc-panel .select-grid {
  max-height: none
}

.hold-panel .hold-footer,
.adhoc-panel .hold-footer {
  padding: 14px 6px 6px;
  border-top: 1px solid var(--line)
}

.main-column:has(.member-slot-panel) .section-heading {
  margin: 10px 6px 21px
}

.member-slot-panel,
.member-held-panel {
  margin: 2px 6px 18px
}

.main-column:has(.member-slot-panel) .meeting-queue-panel {
  margin: 2px 6px 18px
}

.member-slot-panel .panel-heading,
.member-held-panel .panel-heading {
  padding: 20px 24px 16px
}

.main-column:has(.member-slot-panel) .meeting-queue-panel .panel-heading {
  padding: 20px 24px 16px
}

.main-column:has(.member-slot-panel) .meeting-queue-panel .meeting-list {
  padding: 4px 24px
}

.main-column:has(.member-slot-panel) .meeting-queue-panel .table-foot {
  padding: 12px 24px
}

.member-slot-panel .slot-grid {
  padding: 2px 24px 18px
}

.meeting-room-panel {
  margin: 2px 6px 18px
}

.meeting-room-panel .panel-heading {
  padding: 20px 24px 16px
}

.meeting-room-panel .room-overview {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 28px;
  padding: 12px 24px 4px;
  border-bottom: 1px solid var(--line)
}

.meeting-room-panel .room-overview-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-size: 12px
}

.meeting-room-panel .room-overview-row b {
  flex: none;
  min-width: 64px;
  font-size: 12px;
  color: #17365D
}

.meeting-room-panel .room-overview-row span {
  color: #586270
}

.meeting-room-panel .room-section-title {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin: 20px 24px 10px
}

.meeting-room-panel .room-section-title b {
  font-size: 15px;
  font-weight: 700;
  color: #17365D;
  letter-spacing: .01em
}

.meeting-room-panel .room-section-title .muted {
  font-size: 11px
}

.meeting-room-panel .room-project-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 2px;
  padding: 2px 24px 18px;
  width: 100%
}

.meeting-room-panel .room-project-card {
  padding: 14px 16px;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px #17365D08
}

.meeting-room-panel .room-project-name {
  display: flex;
  flex-direction: column;
  gap: 3px
}

.meeting-room-panel .room-project-name b {
  font-size: 13.5px;
  font-weight: 700;
  color: #17365D
}

.meeting-room-panel .room-project-name .muted {
  font-size: 11px
}

.meeting-room-panel .comment-card-title {
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px
}

.meeting-room-panel .decision-tag {
  margin-top: 2px;
  padding: 2px 10px;
  font-size: 11px
}

.meeting-room-panel .decision-tag.pending {
  background: #F5F7FA;
  color: #64748B;
  font-weight: 600
}

.meeting-room-panel .button-pass {
  background: #2864A5;
  border-color: #2864A5;
  color: #fff;
  box-shadow: 0 3px 9px #2864A52e
}

.meeting-room-panel .button-reject {
  background: #fff;
  border-color: #1E293B;
  color: #1E293B;
  box-shadow: none
}

.meeting-room-panel .button-pass:hover {
  background: #1F528A;
  border-color: #1F528A
}

.meeting-room-panel .button-reject:hover {
  background: #F5F7FA;
  border-color: #4b5563;
  color: #4b5563
}

.meeting-room-panel .button-exempt {
  background: #fff;
  border-color: #946200;
  color: #946200;
  box-shadow: none
}

.meeting-room-panel .button-exempt:hover {
  background: #FFF4D6;
  border-color: #9a6415;
  color: #9a6415
}

.meeting-room-panel .room-actions {
  justify-content: flex-start;
  gap: 10px;
  padding-top: 12px;
  margin-top: 2px
}

.meeting-room-panel .room-actions .text-button.text-danger {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 35px;
  padding: 0 13px;
  border: 1px solid #1E293B;
  border-radius: 7px;
  background: #fff;
  color: #1E293B !important;
  font-size: 12px;
  font-weight: 600;
  transition: background .16s, border-color .16s, color .16s
}

.meeting-room-panel .room-actions .text-button.text-danger:hover {
  background: #F5F7FA;
  border-color: #4b5563;
  color: #4b5563 !important
}

.meeting-room-panel .room-comment-items {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 8px 0 2px;
  padding: 8px 10px;
  background: #FCFDFE;
  border-radius: 8px
}

.meeting-room-panel .room-comment-items .comment-item {
  border-bottom: none;
  padding: 3px 0
}

.meeting-room-panel .comment-form-row {
  padding: 2px 24px
}

.meeting-room-panel .comment-form-row label {
  font-size: 11px
}

.meeting-room-panel .comment-form-row input,
.meeting-room-panel .comment-form-row textarea {
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 13px;
  color: #17365D;
  background: #fff;
  transition: border-color .16s, box-shadow .16s;
  font-family: inherit
}

.meeting-room-panel .comment-form-row input:focus,
.meeting-room-panel .comment-form-row textarea:focus {
  border-color: #2864A5;
  box-shadow: 0 0 0 3px #2864A524;
  outline: none
}

.meeting-room-panel .comment-form-row textarea {
  min-height: 76px;
  resize: vertical
}

.meeting-room-panel>.hold-footer {
  padding: 12px 24px 16px;
  border-top: none
}

.meeting-room-panel .room-inline-review {
  margin-top: 10px;
  padding-top: 12px;
  border-top: 1px dashed #EDF2F7
}

.meeting-room-panel .review-decision-row {
  display: flex;
  gap: 10px;
  margin-bottom: 10px
}

.meeting-room-panel .review-decision-btn {
  flex: 1;
  max-width: 160px;
  padding: 8px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  color: #1E293B;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all .16s
}

.meeting-room-panel .review-decision-btn:hover {
  border-color: #2864A5;
  color: #2864A5
}

.meeting-room-panel .review-decision-btn.review-decision-agree {
  background: #18794E;
  border-color: #18794E;
  color: #fff
}

.meeting-room-panel .review-decision-btn.review-decision-reject {
  background: #B42318;
  border-color: #B42318;
  color: #fff
}

.meeting-room-panel .room-inline-review .comment-form-row {
  padding: 0
}

.meeting-room-panel>.room-project-list+.room-section-title {
  margin-top: 34px
}

.ongoing-panel {
  margin: 2px 6px 18px
}

.ongoing-panel .panel-heading {
  padding: 20px 24px 16px
}

.ongoing-panel .meeting-item-actions {
  display: flex;
  align-items: center;
  gap: 8px
}

.ongoing-panel .meeting-item-actions .text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 35px;
  padding: 0 13px;
  border: 1px solid #1E293B;
  border-radius: 7px;
  background: #fff;
  color: #1E293B;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  transition: background .16s, border-color .16s, color .16s
}

.ongoing-panel .meeting-item-actions .text-button:hover {
  background: #F5F7FA;
  border-color: #4b5563;
  color: #4b5563
}

.ongoing-panel .meeting-item-actions .text-button.text-danger {
  color: #1E293B !important
}

.ongoing-panel .meeting-item-actions .text-button.text-danger:hover {
  color: #4b5563 !important
}

.ongoing-panel .meeting-item-actions .text-button.meeting-primary-btn {
  border-color: #2864A5;
  background: #2864A5;
  color: #fff !important;
  box-shadow: 0 2px 6px #2864A538
}

.ongoing-panel .meeting-item-actions .text-button.meeting-primary-btn:hover {
  background: #1F528A;
  border-color: #1F528A;
  color: #fff !important
}

.ongoing-panel .meeting-item-actions .text-button.meeting-primary-btn svg {
  color: #fff
}

.held-detail-row.project-tags-row {
  align-items: flex-start
}

.held-detail-row.project-tags-row b {
  flex: none;
  min-width: 64px;
  margin-top: 2px
}

.project-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0
}

.project-tag {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 3px 9px;
  border: 1px solid #2864A5;
  border-radius: 7px;
  background: #F5F7FA;
  color: #2864A5;
  font-size: 12px;
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

button.project-tag {
  font-family: inherit;
  cursor: pointer;
  background: #fff;
  font-weight: 600
}

button.project-tag:hover {
  background: #F5F7FA;
  border-color: #1F528A;
  color: #1F528A
}

.data-table .row-urgent {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid #1E293B;
  border-radius: 6px;
  background: #fff;
  color: #1E293B;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  margin-right: 8px;
  transition: background .16s, border-color .16s, color .16s
}

.data-table .row-urgent:hover {
  background: #F5F7FA;
  border-color: #4b5563;
  color: #4b5563
}

.data-table .row-urgent.is-urgent {
  border-color: #2864A5;
  background: #2864A5;
  color: #fff
}

.data-table .row-urgent.is-urgent:hover {
  background: #1F528A;
  border-color: #1F528A;
  color: #fff
}

.meeting-room-panel .review-decision-row {
  gap: 8px
}

.meeting-room-panel .review-decision-btn {
  flex: 1;
  max-width: none;
  padding: 9px 10px;
  border-width: 1.5px;
  border-radius: 8px;
  letter-spacing: .02em
}

.meeting-room-panel .review-decision-btn:hover {
  border-color: #94A3B8;
  color: #17365D;
  background: #F5F7FA
}

.meeting-room-panel .review-decision-btn.review-decision-agree {
  background: #18794E;
  border-color: #18794E;
  color: #fff;
  box-shadow: 0 2px 6px #18794E47
}

.meeting-room-panel .review-decision-btn.review-decision-agree:hover {
  background: #17365D;
  border-color: #17365D;
  color: #fff
}

.meeting-room-panel .review-decision-btn.review-decision-reject {
  background: #B42318;
  border-color: #B42318;
  color: #fff;
  box-shadow: 0 2px 6px #B4231847
}

.meeting-room-panel .review-decision-btn.review-decision-reject:hover {
  background: #1F528A;
  border-color: #1F528A;
  color: #fff
}

.meeting-room-panel .review-decision-btn.review-decision-abstain {
  background: #946200;
  border-color: #946200;
  color: #fff;
  box-shadow: 0 2px 6px #94620047
}

.meeting-room-panel .review-decision-btn.review-decision-abstain:hover {
  background: #c47f22;
  border-color: #c47f22;
  color: #fff
}

.meeting-room-panel .room-inline-review .hold-footer {
  display: flex;
  align-items: center;
  gap: 10px
}

.meeting-room-panel .room-inline-review .hold-footer .button-primary:disabled {
  opacity: .45
}

.decision-tag.abstain {
  background: #FFF4D6;
  color: #946200
}

.meeting-room-panel .review-segmented {
  display: flex;
  gap: 6px;
  padding: 3px;
  background: #F5F7FA;
  border: 1px solid #EDF2F7;
  border-radius: 11px
}

.meeting-room-panel .seg-option {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  padding: 8px 6px;
  border: 2px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: #1E293B;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .02em;
  cursor: pointer;
  transition: background .16s, border-color .16s, color .16s, box-shadow .16s;
  font-family: inherit
}

.meeting-room-panel .seg-option:hover {
  background: #fff;
  color: #17365D
}

.meeting-room-panel .seg-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0;
  transition: opacity .16s
}

.meeting-room-panel .seg-option.selected .seg-dot {
  opacity: 1
}

.meeting-room-panel .seg-option.selected {
  border-width: 2px;
  font-weight: 700
}

.meeting-room-panel .seg-option.seg-agree.selected {
  background: #F5F7FA;
  border-color: #18794E;
  color: #18794E;
  box-shadow: 0 1px 4px #18794E2e
}

.meeting-room-panel .seg-option.seg-reject.selected {
  background: #EAF3FB;
  border-color: #B42318;
  color: #B42318;
  box-shadow: 0 1px 4px #B423182e
}

.meeting-room-panel .seg-option.seg-abstain.selected {
  background: #F5F7FA;
  border-color: #64748B;
  color: #1E293B;
  box-shadow: 0 1px 4px #64748B2e
}

.meeting-room-panel .review-folded {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 8px 10px;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  background: #FCFDFE
}

.meeting-room-panel .folded-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap
}

.meeting-room-panel .folded-badge.badge-agree {
  background: #18794E
}

.meeting-room-panel .folded-badge.badge-disagree {
  background: #B42318
}

.meeting-room-panel .folded-badge.badge-abstain {
  background: #64748B
}

.meeting-room-panel .folded-summary {
  flex: 1;
  min-width: 120px;
  color: #1E293B;
  font-size: 12px;
  font-family: SF Mono, Menlo, Consolas, monospace;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.meeting-room-panel .folded-edit {
  flex: none;
  font-weight: 600
}

.meeting-room-panel .room-inline-review .comment-form-row {
  margin-top: 10px;
  padding: 0
}

.meeting-room-panel .room-inline-review .comment-form-row textarea {
  min-height: 64px
}

.meeting-room-panel .room-inline-review .hold-footer {
  padding: 10px 0 0
}

.meeting-room-panel .room-inline-review .hold-footer .button-primary {
  min-width: 104px
}

.meeting-room-panel .room-inline-review .hold-footer .button-primary:disabled {
  opacity: .45;
  cursor: not-allowed
}

.member-held-panel .held-checkin-hint {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 2px 0 4px;
  padding: 9px 11px;
  background: #F5F7FA;
  border: 1px solid #E9EEF5;
  border-radius: 7px;
  color: #8a6d3f;
  font-size: 11px;
  line-height: 1.5
}

.member-held-panel .meeting-item.attention {
  background: #F5F7FA;
  box-shadow: 0 0 0 2px #b9915324
}

.member-held-panel .meeting-item.attention .meeting-item-marker {
  box-shadow: 0 0 0 3px #b9915329
}

.member-held-panel .checkin-pulse {
  color: #b08a3c;
  font-weight: 700;
  animation: checkinPulse 1.1s ease-in-out infinite
}

@keyframes checkinPulse {

  0%,
  to {
    opacity: 1
  }

  50% {
    opacity: .45
  }
}

.meeting-room-panel .room-project-no {
  display: inline-flex;
  align-items: baseline;
  gap: 8px
}

.meeting-room-panel .room-project-no-btn {
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  font: inherit;
  font-size: inherit;
  font-weight: 700;
  color: #b0773b;
  text-decoration: underline;
  text-decoration-color: #b0773b73;
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color .15s, text-decoration-color .15s
}

.meeting-room-panel .room-project-no-btn:hover {
  color: #8f5b2a;
  text-decoration-color: #8f5b2a
}

.meeting-room-panel .room-project-title {
  font-size: 13.5px;
  font-weight: 700;
  color: #17365D
}

.room-detail-overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 70;
  background: #17365D61;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px
}

.room-detail-panel {
  width: min(600px, 92vw);
  max-height: min(86vh, 800px);
  overflow: auto;
  background: #fff;
  border-radius: 13px;
  box-shadow: 0 18px 50px #17365D47;
  padding: 20px 24px 18px;
  display: flex;
  flex-direction: column;
  gap: 14px
}

.room-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid #EDF2F7;
  padding-bottom: 12px
}

.room-detail-head h3 {
  font-size: 16px;
  color: #17365D;
  margin: 2px 0;
  line-height: 1.35
}

.room-detail-no {
  font-size: 12px;
  font-weight: 700;
  color: #b0773b;
  margin: 0;
  letter-spacing: .3px
}

.room-detail-close {
  color: #64748B;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #fff;
  cursor: pointer;
  transition: background .15s, color .15s
}

.room-detail-close:hover {
  background: #F5F7FA;
  color: #17365D
}

.room-detail-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 16px
}

.room-detail-meta>div {
  display: flex;
  flex-direction: column;
  gap: 3px
}

.room-detail-meta span {
  font-size: 11px;
  color: #94A3B8
}

.room-detail-meta b {
  font-size: 13px;
  color: #17365D
}

.room-detail-section {
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  padding: 12px 14px;
  background: #FCFDFE
}

.room-detail-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px
}

.room-detail-section-title b {
  font-size: 13px;
  color: #17365D
}

.room-detail-section-title span {
  font-size: 11px;
  color: #94A3B8
}

.room-detail-opinion {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px dashed #EDF2F7
}

.room-detail-opinion:last-child {
  border-bottom: 0
}

.room-detail-opinion .comment-text {
  font-size: 12px;
  color: #1E293B;
  line-height: 1.5
}

.room-detail-foot {
  display: flex;
  justify-content: flex-end
}

.room-detail-paragraph {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px dashed #EDF2F7
}

.room-detail-paragraph:last-child {
  border-bottom: 0
}

.room-detail-paragraph span {
  font-size: 11px;
  color: #94A3B8;
  font-weight: 600
}

.room-detail-paragraph p {
  margin: 0;
  font-size: 13px;
  color: #1E293B;
  line-height: 1.6;
  white-space: pre-wrap
}

.room-detail-materials {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dashed #EDF2F7;
  display: flex;
  flex-direction: column;
  gap: 4px
}

.room-detail-materials b {
  font-size: 12px;
  color: #17365D
}

.room-detail-materials span {
  font-size: 12px;
  color: #1E293B;
  line-height: 1.5
}

.detail-subsection {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px dashed #EDF2F7
}

.detail-subsection-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px
}

.detail-subsection-title b {
  font-size: 10px;
  font-weight: 600;
  color: #94A3B8;
  letter-spacing: .06em
}

.detail-subsection-title span {
  font-size: 10px;
  color: #94A3B8
}

.detail-paragraph {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 0;
  border-bottom: 1px dashed #EDF2F7
}

.detail-paragraph span {
  font-size: 10px;
  color: #94A3B8
}

.detail-paragraph p {
  margin: 0;
  font-size: 11px;
  line-height: 1.75;
  color: #1E293B;
  white-space: pre-wrap;
  word-break: break-word
}

.detail-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px
}

.detail-chip {
  border: 1px solid #EDF2F7;
  background: #FCFDFE;
  border-radius: 999px;
  padding: 3px 9px;
  font-size: 10px;
  color: #1E293B
}

.assignment-locked {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 10px 0 2px;
  padding: 8px 10px;
  border: 1px dashed #94BADF;
  border-radius: 8px;
  background: #EAF3FB;
  color: #1F528A;
  font-size: 11px;
  line-height: 1.6
}

.assignment-locked svg {
  flex: none
}

.footer-locked {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  color: #1F528A
}

.review-card h3 .project-title-link {
  display: inline;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  font-size: inherit;
  font-weight: inherit;
  color: var(--teal);
  text-align: left;
  text-decoration: underline;
  text-decoration-color: #2864A573;
  text-underline-offset: 3px;
  cursor: pointer;
  transition: color .15s ease, text-decoration-color .15s ease
}

.review-card h3 .project-title-link:hover {
  color: var(--teal-dark);
  text-decoration-color: var(--teal-dark)
}

.review-card h3 .project-title-link:active {
  color: var(--teal-dark)
}

.review-card h3 .project-title-link:focus-visible {
  outline: 3px solid rgba(40, 100, 165, .28);
  outline-offset: 2px;
  border-radius: 4px
}

.override-sheet {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 2px 0 8px
}

.override-project {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  background: #F5F7FA
}

.override-project b {
  font-size: 14px;
  font-weight: 650;
  color: #1E293B;
  letter-spacing: -.01em;
  line-height: 1.55
}

.override-project-meta {
  font-size: 12px;
  color: #64748B;
  line-height: 1.6
}

.override-field {
  display: flex;
  flex-direction: column;
  gap: 9px
}

.override-field-label {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  font-weight: 650;
  color: #1E293B;
  letter-spacing: -.01em
}

.override-field-label b {
  color: #2864A5;
  font-weight: 700
}

.override-field-label small {
  font-size: 12px;
  font-weight: 450;
  color: #94A3B8;
  letter-spacing: 0
}

.override-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px
}

.override-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
  padding: 12px 14px;
  border: 1.5px solid #EDF2F7;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  font-family: inherit;
  transition: border-color .16s, background .16s, box-shadow .16s
}

.override-option:hover:not(:disabled) {
  border-color: #CBD5E1;
  background: #F4F8FD;
  box-shadow: 0 2px 9px #2864A512
}

.override-option.selected {
  border-color: #2864A5;
  background: #F4F8FD;
  box-shadow: 0 0 0 1px #2864A5 inset
}

.override-option.current {
  background: #F5F7FA;
  border-color: #EDF2F7;
  border-style: dashed;
  cursor: not-allowed
}

.override-radio {
  flex: none;
  width: 16px;
  height: 16px;
  margin-top: 2px;
  border: 1.5px solid #CBD5E1;
  border-radius: 50%;
  background: #fff
}

.override-option.selected .override-radio {
  border: 5.5px solid #2864A5
}

.override-option.current .override-radio {
  border-color: #CBD5E1;
  background: #EDF2F7
}

.override-option-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0
}

.override-option-text b {
  font-size: 13px;
  font-weight: 650;
  color: #1E293B;
  letter-spacing: .01em
}

.override-option-text small {
  font-size: 12px;
  line-height: 1.6;
  color: #94A3B8
}

.override-option.selected .override-option-text b {
  color: #1F528A
}

.override-option.selected .override-option-text small {
  color: #64748B
}

.override-option.current .override-option-text b {
  color: #94A3B8
}

.override-current-tag {
  align-self: center;
  margin-left: auto;
  flex: none;
  padding: 3px 9px;
  border-radius: 999px;
  background: #EDF2F7;
  color: #64748B;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap
}

.override-textarea {
  width: 100%;
  min-height: 96px;
  resize: vertical;
  padding: 10px 12px;
  border: 1.5px solid #EDF2F7;
  border-radius: 10px;
  background: #fff;
  color: #1E293B;
  font-family: inherit;
  font-size: 12.5px;
  line-height: 1.7;
  outline: none;
  transition: border-color .16s, box-shadow .16s
}

.override-textarea::placeholder {
  color: #94A3B8
}

.override-textarea:focus {
  border-color: #6A9BCB;
  box-shadow: 0 0 0 3px #2864A51a
}

.override-hint {
  align-self: flex-end;
  font-size: 11.5px;
  color: #94A3B8
}

.override-inline-error {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 9px 12px;
  border: 1px solid #DCEAF7;
  border-radius: 9px;
  background: #F4F8FD;
  color: #1F528A;
  font-size: 12.5px;
  font-weight: 600
}

.override-footer .button {
  height: 36px;
  min-width: 96px;
  padding: 0 16px;
  font-size: 12.5px;
  border-radius: 9px;
  gap: 7px
}

.override-modal .modal-title-row h2 {
  font-size: 19px;
  line-height: 1.45
}

.button-cancel-warm {
  background: #F5F7FA;
  border-color: #EDF2F7;
  color: #1E293B
}

.button-cancel-warm:hover {
  background: #EDF2F7;
  border-color: #CBD5E1;
  color: #1E293B
}

@media(max-width:650px) {
  .override-options {
    grid-template-columns: minmax(0, 1fr)
  }

  .override-modal .modal-title-row h2 {
    font-size: 16px
  }

  .override-footer .button {
    height: 34px;
    min-width: 0;
    padding: 0 14px;
    font-size: 12px
  }
}

@media(max-width:560px) {
  .override-options {
    grid-template-columns: minmax(0, 1fr)
  }
}

.decision-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap
}

.decision-version-tag {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: 13px;
  background: #f1f4f8;
  color: #5b6b80;
  font: 600 12.5px Manrope, Noto Sans SC, sans-serif;
  letter-spacing: .02em
}

.decision-version-tag.updated {
  background: #EAF3FB;
  color: #2455ad
}

.decision-modal-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 18px;
  margin-top: 14px
}

.decision-document {
  max-width: none;
  width: 100%;
  margin: 0;
  min-height: 0;
  max-height: calc(100vh - 250px);
  overflow: auto;
  padding: 30px 38px
}

.decision-approval-no {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 14px;
  color: #64748B;
  margin-top: 6px
}

.decision-approval-no b {
  font-family: "Noto Serif SC", Songti SC, serif;
  font-size: 15px;
  color: #485361
}

.decision-heading {
  font-family: "Noto Serif SC", Songti SC, serif;
  font-size: 16.5px;
  color: #4a5866;
  border-bottom: 1px solid #EDF2F7;
  padding-bottom: 6px;
  margin: 0 0 10px
}

.decision-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid #E9EEF5;
  border-left: 1px solid #E9EEF5
}

.decision-grid-agency {
  grid-template-columns: 1fr
}

.decision-grid-cell {
  display: grid;
  grid-template-columns: 118px 1fr;
  border-right: 1px solid #E9EEF5;
  border-bottom: 1px solid #E9EEF5;
  min-height: 38px
}

.decision-grid-cell>span {
  display: flex;
  align-items: center;
  background: #F5F7FA;
  padding: 7px 10px;
  font-size: 13.5px;
  color: #64748B
}

.decision-grid-cell>b {
  display: flex;
  align-items: center;
  padding: 7px 10px;
  font-size: 14px;
  font-weight: 600;
  color: #3c4756;
  line-height: 1.6
}

.decision-grid-cell>input {
  width: 100%
}

.decision-review-method {
  display: grid;
  grid-template-columns: 118px 1fr;
  align-items: center;
  border: 1px solid #E9EEF5;
  border-radius: 6px;
  margin-bottom: 10px;
  overflow: hidden
}

.decision-review-method>span {
  background: #F5F7FA;
  padding: 8px 10px;
  font-size: 13.5px;
  color: #64748B;
  align-self: stretch;
  display: flex;
  align-items: center
}

.decision-review-method>b {
  padding: 8px 10px;
  font-size: 14px;
  color: #3c4756
}

.decision-review-method>input {
  border: 0;
  border-radius: 0;
  height: 36px
}

.decision-grid-cell>b.value-nowrap {
  white-space: nowrap
}

.room-detail-meta b.value-nowrap {
  white-space: nowrap
}

.decision-edit-input {
  height: 34px;
  border: 1px solid #D9E3EE;
  border-radius: 6px;
  padding: 0 9px;
  font-size: 14px;
  color: #27384f;
  background: #fff
}

.decision-edit-input:focus {
  border-color: #2f68c8;
  background: #F4F8FD
}

.decision-auto-tag {
  display: inline-flex;
  align-items: center;
  height: 20px;
  margin-left: 8px;
  padding: 0 7px;
  border-radius: 10px;
  font-size: 11.5px;
  font-style: normal;
  font-weight: 600;
  background: #EAF3FB;
  color: #2455ad;
  white-space: nowrap
}

.decision-auto-hint {
  margin-left: 6px;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
  color: #94A3B8
}

.decision-edit-textarea {
  width: 100%;
  border: 1px solid #D9E3EE;
  border-radius: 6px;
  padding: 8px 10px;
  font-size: 14.5px;
  line-height: 1.9;
  color: #3c4756;
  background: #fff;
  resize: vertical;
  margin-bottom: 8px;
  text-align: justify
}

.decision-edit-textarea:focus {
  border-color: #2f68c8;
  background: #F4F8FD
}

.decision-side {
  background: #FCFDFE;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  padding: 14px;
  max-height: calc(100vh - 250px);
  overflow: auto
}

.decision-side-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px solid #EDF2F7;
  padding-bottom: 9px;
  margin-bottom: 10px
}

.decision-side-head h4 {
  margin: 0;
  font-size: 15px;
  color: #3d4a5b
}

.decision-revision-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px
}

.decision-revision-list li {
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  padding: 9px 10px
}

.decision-revision-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 5px
}

.decision-revision-top b {
  font-size: 13px;
  color: #3d4a5b
}

.decision-revision-action {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 7px;
  border-radius: 10px;
  font-size: 11.5px;
  font-weight: 600;
  background: #f1f4f8;
  color: #5b6b80;
  white-space: nowrap
}

.decision-revision-action.action-generate {
  background: #EAF3FB;
  color: #2455ad
}

.decision-revision-action.action-update {
  background: #FFF4D6;
  color: #946200
}

.decision-revision-action.action-sync {
  background: #EDF2F7;
  color: #2f7a53
}

.decision-revision-before,
.decision-revision-after,
.decision-revision-meta {
  margin: 0 0 3px;
  font-size: 12.5px;
  line-height: 1.7;
  word-break: break-all
}

.decision-revision-before {
  color: #64748B
}

.decision-revision-after {
  color: #3f6b52
}

.decision-revision-meta {
  color: #94A3B8;
  margin: 4px 0 0
}

@media(max-width:1180px) {
  .decision-modal-body {
    grid-template-columns: 1fr
  }

  .decision-side,
  .decision-document {
    max-height: none
  }
}

.review-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 22px;
  padding: 0 9px;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
  white-space: nowrap
}

.review-chip.review-pending {
  background: #FFF4D6;
  color: #946200
}

.review-chip.review-approved {
  background: #EDF2F7;
  color: #2f7a53
}

.review-chip.review-rejected {
  background: #FCE8E8;
  color: #2864A5
}

.doc-review-cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start
}

.doc-review-signer {
  font-size: 12px;
  color: #1E293B
}

.doc-review-signer.muted {
  color: #94A3B8
}

.row-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap
}

.row-actions .text-button {
  white-space: nowrap
}

.doc-review-gate {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  padding: 10px 13px;
  border: 1px solid #E9EEF5;
  background: #F5F7FA;
  border-radius: 10px;
  color: #946200;
  font-size: 13px;
  line-height: 1.6
}

.doc-review-bar {
  margin: 12px 0 0;
  padding: 13px 14px;
  border: 1px solid #DCE7F5;
  background: #F4F8FD;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 9px
}

.doc-review-bar-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap
}

.doc-review-bar-head strong {
  font-size: 13.5px;
  color: #1E293B
}

.doc-review-comment {
  width: 100%;
  min-height: 52px
}

.doc-review-bar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap
}

.doc-review-passed {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  padding: 10px 13px;
  border: 1px solid #E9EEF5;
  background: #F5F7FA;
  border-radius: 10px;
  color: #2f7a53;
  font-size: 13px;
  line-height: 1.6
}

.director-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
  margin: 0 0 16px
}

.director-summary-card {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  padding: 13px 15px;
  box-shadow: var(--shadow)
}

.director-summary-card small {
  display: block;
  font-size: 12px;
  color: #64748B;
  margin-bottom: 5px
}

.director-summary-card b {
  font-size: 20px;
  color: #1E293B;
  letter-spacing: .01em
}

.document-card .document-fold-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin: 8px 0 0;
  padding: 9px 12px;
  border: 1px solid #EDF2F7;
  border-radius: 10px;
  background: #F5F7FA;
  color: #1E293B;
  text-align: left;
  transition: background .16s ease, border-color .16s ease
}

.document-card .document-fold-toggle:hover,
.document-card .document-fold-toggle.is-open {
  background: #EAF3FB;
  border-color: #BFD8EF
}

.document-card .document-fold-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: none;
  font-size: 13px;
  font-weight: 650;
  letter-spacing: .01em;
  color: #1E293B
}

.document-card .document-fold-label svg {
  color: var(--teal);
  transition: transform .18s ease
}

.document-card .document-fold-toggle.is-open .document-fold-label svg {
  transform: rotate(180deg)
}

.document-card .document-fold-summary {
  flex: 1;
  min-width: 120px;
  color: #1E293B;
  font-size: 12px;
  font-family: SF Mono, Menlo, Consolas, monospace;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.document-card .document-fold-action {
  flex: none;
  font-size: 12px;
  font-weight: 600;
  color: var(--teal);
  white-space: nowrap
}

.document-card .document-fold-toggle:hover .document-fold-action {
  color: var(--teal-dark)
}

.document-card .document-fold-toggle+.document-content {
  margin-top: 8px
}

@media(max-width:650px) {
  .document-card .document-fold-toggle {
    flex-wrap: wrap
  }

  .document-card .document-fold-summary {
    flex-basis: 100%;
    white-space: normal;
    font-size: 11.5px
  }
}

.finished-meeting-panel .finished-meeting-toolbar {
  border-bottom: 1px solid #F5F7FA;
  margin-bottom: 4px
}

.finished-meeting-panel .finished-meeting-toolbar .table-search input {
  width: 300px
}

.finished-meeting-panel .table-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 17px;
  border-top: 1px solid #F5F7FA;
  background: #FCFDFE;
  font-size: 12px;
  color: #94A3B8
}

.finished-meeting-panel .table-foot>span {
  flex: none;
  white-space: nowrap
}

.finished-meeting-panel .table-foot>span b {
  color: #586270;
  font-weight: 600
}

.finished-meeting-panel .table-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none
}

.finished-meeting-panel .table-pagination .page-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  color: #586270;
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all .15s ease
}

.finished-meeting-panel .table-pagination .page-btn:hover:not(.disabled):not(.active) {
  border-color: var(--teal);
  color: var(--teal)
}

.finished-meeting-panel .table-pagination .page-btn.active {
  background: var(--teal);
  border-color: var(--teal);
  color: #fff;
  font-weight: 600
}

.finished-meeting-panel .table-pagination .page-btn.disabled {
  opacity: .4;
  pointer-events: none
}

.roster-field select {
  width: 100%;
  height: 42px;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  background: #fff;
  padding: 0 10px;
  color: #1E293B;
  font: inherit;
  font-weight: 450;
  outline: none;
  cursor: pointer
}

.roster-field select:focus {
  border-color: #2864A5;
  box-shadow: 0 0 0 3px #2864A51f
}

.roster-role-chip {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap
}

.roster-role-director {
  background: #2864A51f;
  color: #2864A5;
  border: 1px solid rgba(40, 100, 165, .28)
}

.roster-role-reviewer {
  background: #F5F7FA;
  color: #1E293B;
  border: 1px solid #EDF2F7
}

.roster-account {
  display: block;
  margin-top: 4px;
  color: #94A3B8;
  font-size: 11px;
  white-space: nowrap
}

.roster-phone-cell strong {
  font-weight: 600;
  letter-spacing: .3px;
  white-space: nowrap
}

.hold-slot-block {
  margin-top: 4px
}

.hold-slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
  gap: 14px;
  margin-bottom: 4px
}

.hold-slot-option {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
  text-align: left;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  transition: all .15s ease
}

.hold-slot-option:hover {
  border-color: #BFD8EF;
  background: #F4F8FD
}

.hold-slot-option.selected {
  border-color: var(--teal);
  background: var(--teal-soft);
  box-shadow: 0 0 0 1px var(--teal) inset
}

.hold-slot-option.expired {
  background: #FCFDFE;
  opacity: .78
}

.hold-slot-radio {
  width: 22px;
  height: 22px;
  flex: none;
  margin-top: 2px;
  border: 1px solid #CBD5E1;
  border-radius: 50%;
  background: #fff;
  color: #fff;
  display: grid;
  place-items: center
}

.hold-slot-option.selected .hold-slot-radio {
  border-color: var(--teal);
  background: var(--teal)
}

.hold-slot-body {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
  min-width: 0
}

.hold-slot-date {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 15px;
  font-weight: 700;
  color: #1E293B;
  white-space: nowrap
}

.hold-slot-date em {
  font-size: 12px;
  font-weight: 600;
  font-style: normal;
  color: var(--muted)
}

.hold-slot-time {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--teal);
  white-space: nowrap
}

.hold-slot-time em {
  font-style: normal;
  font-size: 12px;
  font-weight: 600;
  color: #64748B;
  background: var(--teal-soft);
  padding: 2px 9px;
  border-radius: 999px
}

.hold-slot-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  color: var(--muted)
}

.hold-slot-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 3px 10px;
  border-radius: 999px;
  background: var(--canvas);
  font-size: 12px;
  font-weight: 600;
  color: #1E293B;
  white-space: nowrap
}

.hold-slot-chip.done {
  background: var(--teal-soft);
  color: var(--teal)
}

.hold-slot-count {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.hold-slot-gate {
  white-space: nowrap
}

.hold-slot-state {
  position: absolute;
  top: 16px;
  right: 18px;
  font-size: 12px;
  font-weight: 600;
  color: var(--muted);
  white-space: nowrap
}

.hold-slot-option.selected .hold-slot-state {
  color: var(--teal);
  font-weight: 700
}

.hold-slot-empty {
  border: 1px dashed var(--line);
  border-radius: 12px;
  background: #FCFDFE;
  padding: 26px 20px
}

@media(min-width:1181px) {
  .modal-wide:has(.decision-modal-body) {
    width: min(1120px, 100%)
  }

  .decision-modal-body {
    grid-template-columns: minmax(0, 1fr) 330px;
    gap: 20px;
    margin-top: 16px
  }

  .decision-document {
    max-height: calc(100vh - 236px);
    padding: 34px 44px
  }

  .decision-side {
    max-height: calc(100vh - 236px)
  }
}

.document-modal-toolbar {
  align-items: flex-start;
  gap: 16px
}

.document-modal-toolbar .modal-title-row {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 3px;
  margin: 0;
  min-width: 0
}

.document-modal-toolbar .modal-title-row h2 {
  font-size: 24px;
  line-height: 1.28;
  letter-spacing: -.02em;
  color: #333b45
}

.document-modal-toolbar .modal-title-row p {
  margin: 3px 0 0;
  font-size: 12.5px;
  line-height: 1.65;
  color: #64748B
}

.document-modal-toolbar .modal-title-row .seat-select {
  margin-top: 6px;
  max-width: 440px
}

.document-modal-toolbar .decision-toolbar-actions {
  flex: 0 0 auto;
  align-items: center;
  justify-content: flex-end;
  padding-top: 2px
}

.decision-document .formal-doc-title {
  padding: 30px 0 22px
}

.decision-document .formal-doc-section {
  margin-top: 26px
}

.decision-document .decision-heading {
  font-size: 17.5px;
  color: #3f4c5a;
  padding-bottom: 8px;
  margin: 0 0 14px
}

.decision-document .formal-doc-section>p {
  font-size: 14.5px;
  line-height: 2.05;
  color: #4d5866;
  margin: 0 0 10px;
  text-align: justify
}

.decision-document .formal-doc-section>p:last-child {
  margin-bottom: 0
}

.decision-document .decision-grid {
  border-top-color: #E9EEF5;
  border-left-color: #E9EEF5
}

.decision-document .decision-grid-cell {
  grid-template-columns: 132px minmax(0, 1fr);
  min-height: 44px;
  border-color: #E9EEF5
}

.decision-document .decision-grid-agency .decision-grid-cell {
  grid-template-columns: 132px minmax(0, 1fr)
}

.decision-document .decision-grid-cell>span {
  padding: 9px 12px;
  font-size: 14px;
  color: #1E293B;
  line-height: 1.7
}

.decision-document .decision-grid-cell>b {
  padding: 9px 14px;
  font-size: 14.5px;
  line-height: 1.7;
  color: #33404e
}

.decision-document .decision-review-method {
  grid-template-columns: 132px minmax(0, 1fr);
  margin-bottom: 14px;
  border-radius: 8px;
  border-color: #E9EEF5
}

.decision-document .decision-review-method>span {
  padding: 9px 12px;
  font-size: 14px;
  color: #1E293B
}

.decision-document .decision-review-method>b {
  padding: 9px 14px;
  font-size: 14.5px;
  line-height: 1.7
}

.decision-document .decision-approval-no {
  margin-top: 10px;
  font-size: 14.5px
}

.decision-document .decision-edit-input {
  height: 36px;
  font-size: 14.5px
}

.decision-side {
  padding: 16px;
  border-radius: 12px
}

.decision-side-head {
  padding-bottom: 11px;
  margin-bottom: 12px
}

.decision-side-head h4 {
  font-size: 16px;
  color: #38424e
}

.decision-revision-list {
  gap: 12px
}

.decision-revision-list li {
  padding: 11px 12px;
  border-radius: 10px;
  box-shadow: 0 1px 2px #1E293B0b
}

.decision-revision-top {
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 6px
}

.decision-revision-top b {
  font-size: 13.5px;
  line-height: 1.5;
  word-break: break-word;
  overflow-wrap: anywhere
}

.decision-revision-before,
.decision-revision-after {
  font-size: 13px;
  line-height: 1.78;
  word-break: break-word;
  overflow-wrap: anywhere;
  margin: 0 0 4px
}

.decision-revision-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  margin: 8px 0 0;
  padding-top: 8px;
  border-top: 1px dashed #EDF2F7;
  font-size: 12.5px;
  line-height: 1.6;
  color: #94A3B8;
  word-break: normal
}

.decision-revision-actor {
  flex: 1 1 auto;
  min-width: 0;
  overflow-wrap: anywhere
}

.decision-revision-time {
  flex: 0 0 auto;
  margin-left: auto;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  color: #64748B
}

@media(max-width:900px) {
  .decision-document {
    padding: 20px 16px
  }

  .document-modal-toolbar .modal-title-row h2 {
    font-size: 20px
  }

  .document-modal-toolbar .modal-title-row .seat-select {
    max-width: 100%
  }
}

.modal-wide:has(.decision-modal-body) .document-modal-toolbar {
  padding-right: 52px
}

.decision-document .decision-grid,
.decision-document .decision-grid-cell {
  min-width: 0
}

.decision-document .decision-grid-cell>span {
  min-width: 0;
  overflow-wrap: anywhere
}

.decision-document .decision-grid-cell>b {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word
}

.decision-document .decision-grid-cell>b.value-nowrap {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word
}

.decision-document .decision-grid-cell>input {
  min-width: 0
}

.decision-document .decision-grid:not(.decision-grid-agency)>.decision-grid-cell:last-child:nth-child(odd) {
  grid-column: span 2
}

.auth-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 48px 32px;
  background: #F5F7FA
}

.auth-loading {
  font-size: 15px;
  letter-spacing: .04em;
  color: #64748B
}

.auth-shell {
  width: 100%;
  max-width: 1060px;
  display: grid;
  grid-template-columns: minmax(400px, 1fr) minmax(420px, 470px);
  background: #fff;
  border: 1px solid #EDF2F7;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 26px 70px #1E293B17
}

.auth-intro {
  padding: 54px 50px;
  background: linear-gradient(160deg, #F4F8FD, #EAF3FB);
  border-right: 1px solid #E2E8F0;
  display: flex;
  flex-direction: column
}

.auth-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap
}

.auth-brand-mark {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  background: #2864A5;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center
}

.auth-brand-name {
  font-size: 17px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #1E293B
}

.auth-headline {
  margin: 32px 0 0;
  font-size: 30px;
  line-height: 1.5;
  font-weight: 600;
  color: #1E293B
}

.auth-lead {
  margin: 16px 0 0;
  font-size: 15px;
  line-height: 1.9;
  color: #1E293B
}

.auth-points {
  list-style: none;
  margin: 30px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px
}

.auth-points li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 15px;
  line-height: 1.6;
  color: #1E293B;
  white-space: nowrap
}

.auth-points li svg {
  color: #2864A5;
  flex: none
}

.auth-form-panel {
  padding: 46px 46px 40px;
  display: flex;
  flex-direction: column
}

.auth-tabs {
  display: inline-flex;
  gap: 6px;
  padding: 4px;
  border-radius: 12px;
  background: #E2E8F0;
  align-self: flex-start
}

.auth-tab {
  border: none;
  background: transparent;
  padding: 8px 26px;
  border-radius: 9px;
  font-size: 15px;
  color: #1E293B;
  cursor: pointer;
  font-family: inherit;
  letter-spacing: .04em;
  white-space: nowrap
}

.auth-tab.is-active {
  background: #fff;
  color: #2864A5;
  font-weight: 600;
  box-shadow: 0 2px 8px #1E293B14
}

.auth-form-title {
  margin: 30px 0 0;
  font-size: 24px;
  font-weight: 600;
  color: #1E293B;
  white-space: nowrap
}

.auth-form-desc {
  margin: 10px 0 0;
  font-size: 14px;
  line-height: 1.8;
  color: #64748B
}

.auth-notice,
.auth-error {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 18px;
  padding: 11px 16px;
  border-radius: 10px;
  font-size: 14px;
  line-height: 1.6
}

.auth-notice {
  background: #F5F7FA;
  color: #1E293B
}

.auth-notice svg {
  color: #2864A5;
  flex: none
}

.auth-error {
  background: #F4F8FD;
  border: 1px solid #DCEAF7;
  color: #1F528A
}

.auth-error svg {
  color: #2864A5;
  flex: none
}

.auth-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 26px
}

.auth-field {
  display: flex;
  flex-direction: column;
  gap: 8px
}

.auth-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #1E293B;
  white-space: nowrap
}

.auth-optional {
  font-style: normal;
  font-weight: 400;
  font-size: 12px;
  color: #2864A5;
  background: #EAF3FB;
  border-radius: 6px;
  padding: 1px 7px;
  white-space: nowrap
}

.auth-input {
  height: 46px;
  padding: 0 15px;
  border: 1px solid #E2E8F0;
  border-radius: 11px;
  background: #E2E8F0;
  font-size: 15px;
  letter-spacing: .02em;
  color: #1E293B;
  font-family: inherit;
  transition: border-color .16s ease, box-shadow .16s ease
}

.auth-input:focus {
  outline: none;
  border-color: #2864A5;
  background: #fff;
  box-shadow: 0 0 0 3px #2864A51f
}

.auth-input::placeholder {
  color: #94A3B8
}

.auth-hint {
  font-size: 12.5px;
  letter-spacing: .02em;
  color: #2864A5
}

.auth-submit {
  margin-top: 6px;
  height: 48px;
  border: none;
  border-radius: 12px;
  background: #2864A5;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .18em;
  cursor: pointer;
  font-family: inherit;
  transition: background .16s ease
}

.auth-submit:hover {
  background: #1F528A
}

.auth-submit:disabled {
  background: #94A3B8;
  cursor: not-allowed
}

.auth-switch {
  margin: 4px 0 0;
  font-size: 14px;
  color: #64748B;
  text-align: center;
  white-space: nowrap
}

.auth-link {
  border: none;
  background: none;
  padding: 0 4px;
  font-size: 14px;
  color: #2864A5;
  font-family: inherit;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px
}

.logout-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 38px;
  padding: 0 16px;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  background: #fff;
  font-size: 14px;
  letter-spacing: .02em;
  color: #1E293B;
  font-family: inherit;
  cursor: pointer;
  white-space: nowrap
}

.logout-button:hover {
  border-color: #2864A5;
  color: #2864A5
}

@media(max-width:980px) {
  .auth-shell {
    grid-template-columns: 1fr
  }

  .auth-intro {
    padding: 40px 34px;
    border-right: none;
    border-bottom: 1px solid #E2E8F0
  }

  .auth-form-panel {
    padding: 36px 34px 32px
  }

  .auth-points li,
  .auth-switch,
  .auth-form-title {
    white-space: normal
  }
}

.profile-page {
  display: flex;
  flex-direction: column;
  gap: 22px
}

.profile-summary {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 26px 28px
}

.profile-identity {
  display: flex;
  align-items: center;
  gap: 18px;
  white-space: nowrap
}

.profile-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 18px;
  background: #EAF3FB;
  border: 1px solid #E2E8F0;
  color: #2864A5;
  font-size: 22px;
  font-weight: 600;
  letter-spacing: .02em;
  flex: 0 0 auto
}

.profile-identity-main {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0
}

.profile-identity-row {
  display: flex;
  align-items: center;
  gap: 12px;
  white-space: nowrap
}

.profile-identity-row h2 {
  margin: 0;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #3c3630;
  white-space: nowrap
}

.profile-role-chip {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 12px;
  border-radius: 999px;
  background: #EAF3FB;
  border: 1px solid #BFD8EF;
  font-size: 13px;
  letter-spacing: .02em;
  color: #2864A5;
  white-space: nowrap
}

.profile-identity-sub {
  margin: 0;
  font-size: 14px;
  letter-spacing: .02em;
  color: #64748B;
  white-space: nowrap
}

.profile-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 18px
}

.profile-fact {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px 18px;
  border: 1px solid #E2E8F0;
  border-radius: 14px;
  background: #FCFDFE;
  white-space: nowrap;
  min-width: 0
}

.profile-fact small {
  font-size: 12px;
  letter-spacing: .06em;
  color: #64748B;
  white-space: nowrap
}

.profile-fact b {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .02em;
  color: #3c3630;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.profile-fact-note {
  font-size: 12px;
  letter-spacing: .02em;
  color: #94A3B8;
  white-space: nowrap
}

.profile-readonly {
  background: #F5F7FA;
  color: #64748B;
  cursor: not-allowed
}

.profile-tip {
  font-size: 14px;
  letter-spacing: .02em;
  color: #64748B;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis
}

.profile-tip.is-ok {
  color: #2864A5
}

.profile-tip.is-error {
  color: #2864A5
}

@media(max-width:1180px) {
  .profile-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr))
  }
}

@media(max-width:980px) {
  .profile-facts {
    grid-template-columns: 1fr
  }

  .profile-identity,
  .profile-identity-row,
  .profile-identity-sub,
  .profile-fact,
  .profile-fact small,
  .profile-fact b,
  .profile-fact-note,
  .profile-tip {
    white-space: normal
  }
}

.user-menu-wrap {
  position: relative
}

.user-menu-popover {
  position: absolute;
  left: 0;
  right: 0;
  bottom: calc(100% + 10px);
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  border: 1px solid #E2E8F0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 40px #3c363029;
  z-index: 45
}

.user-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: #3c3630;
  font-size: 14px;
  letter-spacing: .02em;
  text-align: left;
  cursor: pointer;
  font-family: inherit
}

.user-menu-item:hover {
  background: #F5F7FA;
  color: #2864A5
}

.user-menu-item svg {
  flex: 0 0 auto;
  color: #2864A5
}

.user-menu-divider {
  height: 1px;
  margin: 6px 4px;
  background: #E2E8F0
}

.sidebar-profile.is-open {
  border-radius: 10px;
  background: #EAF3FB;
  color: #2864A5
}

.sidebar-profile.is-open small {
  color: #64748B
}

.auth-intro {
  justify-content: center
}

.intake-profile-note {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  padding: 11px 13px;
  border: 1px solid #BFD8EF;
  border-radius: 10px;
  background: #F4F8FD;
  color: #1E293B;
  font-size: 12px;
  line-height: 1.6
}

.intake-profile-note svg {
  flex: none;
  color: #2864A5
}

.field-label {
  display: inline-flex;
  align-items: baseline;
  font-size: 11px;
  line-height: 1.5;
  color: #1E293B;
  letter-spacing: normal
}

.field-label b {
  color: #4480B8;
  font-weight: 700;
  margin-right: 4px
}

.override-field-label>.field-label {
  font-size: 13px;
  font-weight: 650;
  color: #1E293B
}

.document-pagination-foot,
.roster-pagination-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: auto;
  min-height: 39px;
  padding: 10px 17px;
  border-top: 1px solid #E2E8F0;
  background: #F5F7FA;
  font-size: 12px;
  color: #64748B;
  flex-wrap: wrap
}

.document-pagination-foot>span,
.roster-pagination-foot>span {
  white-space: nowrap
}

.document-pagination-foot>span b,
.roster-pagination-foot>span b {
  color: #1E293B;
  font-weight: 600
}

.document-pagination-foot .table-pagination,
.roster-pagination-foot .table-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  flex: none
}

.document-pagination-foot .page-btn,
.roster-pagination-foot .page-btn {
  min-width: 30px;
  height: 30px;
  padding: 0 8px;
  border: 1px solid #E2E8F0;
  border-radius: 7px;
  background: #fff;
  color: #1E293B;
  font-size: 13px;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .15s ease
}

.document-pagination-foot .page-btn:hover:not(.disabled),
.roster-pagination-foot .page-btn:hover:not(.disabled) {
  border-color: #2864A5;
  color: #2864A5
}

.document-pagination-foot .page-btn.active,
.roster-pagination-foot .page-btn.active {
  background: #2864A5;
  border-color: #2864A5;
  color: #fff;
  font-weight: 600
}

.document-pagination-foot .page-btn.disabled,
.roster-pagination-foot .page-btn.disabled {
  opacity: .4;
  cursor: default
}

.page-size-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap
}

.page-size-select {
  border: 1px solid #E2E8F0;
  border-radius: 7px;
  background: #fff;
  color: #1E293B;
  font-size: 12px;
  padding: 5px 8px;
  cursor: pointer
}

.page-size-select:focus {
  border-color: #2864A5;
  box-shadow: 0 0 0 3px #2864A51f;
  outline: none
}

.empty-cell {
  text-align: center;
  color: #94A3B8;
  padding: 22px 0;
  font-size: 12px
}

.quarter-meeting-panel {
  margin-top: 18px
}

.quarter-mode {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #EAF3FB;
  color: #64748B;
  white-space: nowrap
}

.quarter-mode-editable {
  background: #2864A51f;
  color: #2864A5;
  font-weight: 600
}

.quarter-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
  margin-top: 16px
}

.quarter-empty {
  color: #94A3B8;
  font-size: 13px;
  padding: 16px 0
}

.quarter-card {
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  background: #fff;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 10px
}

.quarter-card header {
  display: flex;
  align-items: center;
  justify-content: space-between
}

.quarter-card header b {
  font-size: 15px;
  color: #1E293B
}

.quarter-card header span {
  font-size: 11px;
  color: #94A3B8
}

.quarter-field {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  font-size: 13px;
  color: #1E293B
}

.quarter-field input {
  width: 78px;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 6px 8px;
  font-size: 13px;
  color: #1E293B;
  background: #fff
}

.quarter-field input:focus {
  border-color: #2864A5;
  box-shadow: 0 0 0 3px #2864A51f;
  outline: none
}

.quarter-readonly {
  margin: 0;
  font-size: 13px;
  color: #1E293B
}

.quarter-card footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  border-top: 1px dashed #E2E8F0;
  padding-top: 10px
}

.quarter-card footer small {
  font-size: 11px;
  color: #94A3B8
}

.quarter-card .button {
  padding: 6px 14px;
  font-size: 12px
}

.declaration-window-banner {
  min-height: 61px;
  display: flex;
  align-items: center;
  gap: 12px;
  background: #FCE8E8;
  border: 1px solid #DCEAF7;
  border-radius: 9px;
  padding: 10px 14px;
  margin: 0 0 19px
}

.declaration-window-icon {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  background: #DCEAF7;
  color: #1F528A;
  flex: none
}

.declaration-window-banner>div {
  flex: 1
}

.declaration-window-banner strong {
  font-size: 12px;
  color: #1B4778
}

.declaration-window-banner p {
  font-size: 12px;
  color: #64748B;
  margin: 4px 0 0
}

.doc-edit-gate {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 12px 0 0;
  padding: 10px 13px;
  border: 1px solid #EDF2F7;
  background: #F5F7FA;
  border-radius: 10px;
  color: #64748B;
  font-size: 13px;
  line-height: 1.6
}

.doc-edit-locked,
.doc-edit-locked:hover {
  color: #94A3B8;
  cursor: not-allowed;
  text-decoration: none
}

.doc-edit-lock-chip {
  margin-left: 10px;
  padding: 3px 9px;
  border: 1px solid #EDF2F7;
  background: #F5F7FA;
  border-radius: 999px;
  color: #64748B;
  font-size: 12px;
  white-space: nowrap
}

.auth-page {
  flex-direction: column
}

.auth-copyright {
  margin-top: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 12px;
  line-height: 1.8;
  letter-spacing: .03em;
  color: #94A3B8;
  white-space: nowrap;
  text-align: center
}

.auth-copyright-link {
  color: #94A3B8;
  text-decoration: none;
  transition: color .15s ease
}

.auth-copyright-link:hover {
  color: #2864A5;
  text-decoration: underline
}

@media(max-width:720px) {
  .auth-copyright {
    flex-direction: column;
    gap: 2px;
    white-space: normal
  }
}

/* ===== 医疗科技蓝白风 · UI设计规范 V1.0 ===== */
:root{
  --color-primary:#17365D; --color-primary-action:#2864A5; --color-primary-hover:#1F528A;
  --color-primary-light:#EAF3FB; --color-page:#F5F7FA; --color-surface:#FFFFFF;
  --color-border:#E2E8F0; --color-text-primary:#1E293B; --color-text-secondary:#64748B;
  --color-text-disabled:#94A3B8;
  --color-success:#18794E; --color-success-bg:#E5F5EC;
  --color-warning:#946200; --color-warning-bg:#FFF4D6;
  --color-danger:#B42318; --color-danger-bg:#FCE8E8;
  --color-info:#2864A5; --color-info-bg:#EAF3FB;
  --color-neutral:#526173; --color-neutral-bg:#ECEFF3;
  --color-attention:#854D0E; --color-attention-bg:#FEF3C7;
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-6:24px; --space-8:32px;
  --sidebar-width:240px; --header-height:64px;
  --radius-card:10px; --radius-control:6px; --radius-dialog:12px;
  --shadow-card:0 1px 3px rgba(23,54,93,.06);
  --font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif;
  --ink:#1E293B; --ink-2:#64748B; --muted:#94A3B8; --line:#E2E8F0;
  --paper:#FFFFFF; --canvas:#F5F7FA;
  --teal:#2864A5; --teal-dark:#1F528A; --teal-soft:#EAF3FB;
  --gold:#946200; --gold-soft:#FFF4D6; --red:#B42318; --red-soft:#FCE8E8;
  --blue:#2864A5; --violet:#526173;
}
body{font-family:var(--font-family);font-size:14px;line-height:1.6;color:#1E293B;background:#F5F7FA}
.sidebar{width:240px;background:#FFFFFF;border-right:1px solid #E2E8F0}
.main-column{margin-left:240px}
.topbar{height:64px;background:#17365D !important;border-bottom:1px solid #12283F !important;
  -webkit-backdrop-filter:none;backdrop-filter:none}
.topbar .breadcrumbs{color:rgba(255,255,255,.72)}
.topbar .breadcrumbs strong{color:#FFFFFF}
.topbar .prototype-chip{background:rgba(255,255,255,.14);color:#E8EEF6}
.topbar button,.topbar .icon-btn{color:#FFFFFF;background:transparent;border-color:rgba(255,255,255,.24)}
.topbar button:hover{background:rgba(255,255,255,.12)}
.topbar svg{stroke:#FFFFFF;color:#FFFFFF}
.topbar input{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.24);color:#FFFFFF}
.nav-item{border-radius:6px}
.nav-item.active{background:#EAF3FB;color:#2864A5}
.nav-item:hover{background:#F1F5F9;color:#17365D}
.nav-count{background:#EAF3FB;color:#2864A5}
h1{font-size:24px;font-weight:600;line-height:32px;color:#17365D}
h2{font-size:18px;font-weight:600;line-height:26px}
thead th{background:#F5F7FA;color:#64748B;font-weight:500}
tbody td{border-bottom:1px solid #E2E8F0}
tbody tr:hover{background:#F8FAFC}
.btn{min-height:40px;border-radius:6px;font-weight:500}
.btn-primary{background:#2864A5;border-color:#2864A5;color:#FFFFFF}
.btn-primary:hover{background:#1F528A;border-color:#1F528A}
.btn-primary:focus-visible{outline:3px solid #93C5FD;outline-offset:2px}
input,select,textarea{border-color:#E2E8F0;border-radius:6px;background:#FFFFFF;color:#1E293B}
input:focus,select:focus,textarea:focus{border-color:#2864A5;box-shadow:0 0 0 3px rgba(40,100,165,.14);outline:none}
.card,.panel{background:#FFFFFF;border:1px solid #E2E8F0;border-radius:10px;box-shadow:0 1px 3px rgba(23,54,93,.06)}
/* 语义状态标签 */
.badge-green,.badge-agree,.status-ok{color:#18794E !important;background:#E5F5EC !important;border-color:#BFE3D0 !important}
.badge-amber,.status-warn{color:#946200 !important;background:#FFF4D6 !important;border-color:#F0DCA8 !important}
.badge-red,.badge-disagree{color:#B42318 !important;background:#FCE8E8 !important;border-color:#F3C6C6 !important}
.badge-blue{color:#2864A5 !important;background:#EAF3FB !important;border-color:#C6DDF2 !important}
.badge-violet,.badge-abstain{color:#526173 !important;background:#ECEFF3 !important;border-color:#D5DBE3 !important}
/* 表头文字色对齐规范 #64748B */
thead th, table th, .data-table th, .table th, th{
  color:#64748B !important;
  font-weight:500 !important;
  background:#F5F7FA;
}

/* ==== 审查通道色区分：简易程序=蓝 / 会议审查=琥珀 ==== */
.table-route{
  display:inline-flex;
  align-items:center;
  font-weight:600;
  border:1px solid transparent;
}
.table-route.simple{
  color:#2864A5 !important;
  background:#EAF3FB !important;
  border-color:#C6DDF2 !important;
}
.table-route.meeting{
  color:#946200 !important;
  background:#FFF4D6 !important;
  border-color:#F0DCA8 !important;
}

/* ===== 登录页视觉强化（参考设计稿） 2026-10-23 ===== */
.auth-page{
  position:relative;overflow:hidden;
  background-color:#F3F8FF;
  background-image:
    radial-gradient(1100px 560px at 10% 4%, rgba(208,229,255,.85), rgba(208,229,255,0) 62%),
    radial-gradient(900px 520px at 92% 96%, rgba(206,226,252,.8), rgba(206,226,252,0) 64%),
    repeating-linear-gradient(0deg, rgba(30,91,191,.045) 0 1px, transparent 1px 38px),
    repeating-linear-gradient(90deg, rgba(30,91,191,.045) 0 1px, transparent 1px 38px),
    linear-gradient(180deg,#F8FBFF 0%,#F1F7FE 52%,#E9F2FC 100%);
}
.auth-page::before,.auth-page::after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
  filter:blur(48px);z-index:0;will-change:transform;
}
.auth-page::before{
  width:520px;height:520px;left:-140px;top:-160px;opacity:.5;
  background:radial-gradient(circle at 38% 36%, #9CC6FF 0%, #D9EAFF 58%, rgba(217,234,255,0) 72%);
  animation:authBlobA 19s ease-in-out infinite;
}
.auth-page::after{
  width:600px;height:600px;right:-170px;bottom:-210px;opacity:.45;
  background:radial-gradient(circle at 58% 42%, #A6CCFF 0%, #E2EFFF 56%, rgba(226,239,255,0) 72%);
  animation:authBlobB 23s ease-in-out infinite;
}
@keyframes authBlobA{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(46px,34px,0) scale(1.07)}}
@keyframes authBlobB{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-52px,-36px,0) scale(1.05)}}

.auth-shell{
  position:relative;z-index:1;
  max-width:1140px;
  grid-template-columns:1.45fr minmax(400px,1fr);
  border-radius:24px;border-color:#E6EFFB;
  box-shadow:0 32px 84px rgba(23,54,93,.16), 0 2px 10px rgba(23,54,93,.05);
}

.auth-intro{
  position:relative;overflow:hidden;
  padding:52px 52px 132px;
  background:linear-gradient(168deg,#FAFCFF 0%,#EDF4FE 50%,#DCEAFB 100%);
  border-right:1px solid #E4EEFA;
}
.auth-intro > *{position:relative;z-index:2}
.auth-intro::before{
  content:"";position:absolute;z-index:1;pointer-events:none;
  right:-6px;top:44%;width:236px;height:274px;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20120%20142%27%3E%3Cdefs%3E%3ClinearGradient%20id%3D%27g%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%232B7DE9%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%231E5BBF%27%2F%3E%3C%2FlinearGradient%3E%3CradialGradient%20id%3D%27h%27%20cx%3D%2750%25%27%20cy%3D%2742%25%27%20r%3D%2752%25%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%238FC0FF%27%20stop-opacity%3D%27.95%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%238FC0FF%27%20stop-opacity%3D%270%27%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3Ccircle%20cx%3D%2760%27%20cy%3D%2762%27%20r%3D%2758%27%20fill%3D%27url%28%23h%29%27%2F%3E%3Cpath%20d%3D%27M60%2010%20106%2027v42c0%2031-19%2051-46%2064-27-13-46-33-46-64V27z%27%20fill%3D%27url%28%23g%29%27%2F%3E%3Cpath%20d%3D%27M41%2066l13%2013%2026-28%27%20fill%3D%27none%27%20stroke%3D%27%23fff%27%20stroke-width%3D%279%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%2F%3E%3C%2Fsvg%3E") no-repeat center/contain;
  opacity:.5;animation:authShield 9s ease-in-out infinite;
}
.auth-intro::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:158px;z-index:1;pointer-events:none;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%20160%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2096c120-46%20240%2034%20360%2010s240-72%20360-46%20240%2082%20360%2056%20120-14%20120-14v74H0z%27%20fill%3D%27%23CFE2FB%27%20fill-opacity%3D%27.55%27%2F%3E%3Cpath%20d%3D%27M0%20126c140-34%20260%2026%20400%206s260-56%20400-34%20260%2062%20400%2040V160H0z%27%20fill%3D%27%23BFD9F8%27%20fill-opacity%3D%27.5%27%2F%3E%3C%2Fsvg%3E") repeat-x bottom/1200px 158px;
  animation:authWave 22s linear infinite;
}
@keyframes authShield{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-16px) rotate(-2deg)}}
@keyframes authWave{from{background-position-x:0}to{background-position-x:-1200px}}

.auth-brand-mark{
  background:linear-gradient(135deg,#2B7DE9,#1E5BBF);
  border-radius:12px;
  box-shadow:0 10px 22px rgba(43,125,233,.28);
}
.auth-brand-name{color:#1E5BBF;letter-spacing:.03em}
.auth-headline{
  font-size:32px;line-height:1.46;letter-spacing:-.01em;
  color:#17365D;font-weight:700;
}
.auth-lead{margin-top:18px;color:#5B6F89;font-size:15.5px;line-height:1.95}
.auth-points{margin-top:28px;gap:16px}
.auth-points li{color:#41556E;font-size:14.5px;white-space:normal;line-height:1.7}
.auth-points li svg{color:#2B7DE9}

.auth-form-panel{padding:48px 46px 42px;background:#fff}
.auth-tabs{background:#EEF4FC;border-radius:14px;padding:5px}
.auth-tab{color:#6B7F98;border-radius:10px;padding:8px 28px}
.auth-tab.is-active{color:#2B7DE9;background:#fff;box-shadow:0 3px 12px rgba(30,91,191,.14)}
.auth-form-title{margin-top:32px;font-size:26px;color:#17365D;font-weight:700}
.auth-form-desc{color:#8296AE}
.auth-field{gap:9px}
.auth-label{color:#334155}
.auth-input{
  height:48px;background:#fff;border:1px solid #E3EAF4;border-radius:10px;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.auth-input:hover{border-color:#CFDDEF}
.auth-input:focus{border-color:#2B7DE9;background:#fff;box-shadow:0 0 0 4px rgba(43,125,233,.14)}
.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(1) .auth-input,
.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(2) .auth-input{
  padding-left:46px;background-repeat:no-repeat;background-position:16px center;background-size:19px 19px;
}
.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(1) .auth-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%238FA6C2%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%278%27%20r%3D%273.6%27%2F%3E%3Cpath%20d%3D%27M4.5%2020c1.2-3.6%204-5.4%207.5-5.4s6.3%201.8%207.5%205.4%27%2F%3E%3C%2Fsvg%3E")}
.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(2) .auth-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%238FA6C2%27%20stroke-width%3D%271.8%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%274.5%27%20y%3D%2710.5%27%20width%3D%2715%27%20height%3D%2710%27%20rx%3D%272.6%27%2F%3E%3Cpath%20d%3D%27M8%2010.5V8a4%204%200%200%201%208%200v2.5%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2715.5%27%20r%3D%271.2%27%20fill%3D%27%238FA6C2%27%20stroke%3D%27none%27%2F%3E%3C%2Fsvg%3E")}
.auth-submit{
  margin-top:10px;height:50px;border-radius:26px;
  background:linear-gradient(135deg,#2B7DE9 0%,#1E5BBF 100%);
  box-shadow:0 12px 26px rgba(30,91,191,.28);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.auth-submit:hover{
  background:linear-gradient(135deg,#2B7DE9 0%,#1E5BBF 100%);
  transform:translateY(-1px);filter:brightness(1.04);
  box-shadow:0 16px 32px rgba(30,91,191,.34);
}
.auth-submit:active{transform:translateY(0);box-shadow:0 8px 18px rgba(30,91,191,.26)}
.auth-submit:disabled{background:#B8CADF;box-shadow:none;transform:none;filter:none}
.auth-switch{color:#7B8DA4}
.auth-link{color:#2B7DE9;text-underline-offset:5px}
.auth-link:hover{color:#1E5BBF}
.auth-copyright{color:#93A6BD}
.auth-copyright-link{color:#93A6BD}

@media (max-width:900px){
  .auth-intro{padding:40px 34px 118px}
  .auth-headline{font-size:27px}
  .auth-intro::before{width:180px;height:208px;right:-10px;top:auto;bottom:96px;opacity:.4}
}
@media (prefers-reduced-motion: reduce){
  .auth-page::before,.auth-page::after,.auth-intro::before,.auth-intro::after{animation:none}
}

/* 登录页微调 2 */
.auth-page::before{opacity:.62}
.auth-page::after{opacity:.55}
.auth-tabs{align-self:stretch;justify-content:center}
.auth-tab{flex:1 1 0;text-align:center}
@media (max-width:900px){
  .auth-tabs{align-self:flex-start;width:100%}
  .auth-tab{flex:1 1 auto}
}

/* ===== 登录页改版 v3 · 参考截图 2026-10-23 ===== */
.auth-page{
  display:flex;flex-direction:column;
  min-height:100vh;padding:0;overflow-x:hidden;
  background-color:#F8FAFC;
  background-image:
    radial-gradient(760px 460px at 88% 2%, rgba(219,236,253,.62), rgba(219,236,253,0) 64%),
    radial-gradient(620px 400px at 52% 100%, rgba(232,243,254,.6), rgba(232,243,254,0) 62%),
    repeating-linear-gradient(0deg, rgba(13,60,101,.026) 0 1px, transparent 1px 46px),
    repeating-linear-gradient(90deg, rgba(13,60,101,.026) 0 1px, transparent 1px 46px);
  background-repeat:no-repeat,no-repeat,repeat,repeat;
}
.auth-page::before,.auth-page::after{content:none!important;display:none!important;animation:none!important}

.auth-shell{
  width:100%;max-width:none;flex:1 1 auto;min-height:0;
  display:grid;grid-template-columns:1fr 1fr;
  background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;
}

/* ---------- 左栏 ---------- */
.auth-intro{
  padding:86px 9.5% 128px;
  background:linear-gradient(135deg,#E6F2FD 0%,#F2F8FE 44%,#FFFFFF 100%);
  border-right:1px solid #EDF3FA;
  justify-content:flex-start;overflow:hidden;
}
.auth-brand{gap:12px}
.auth-brand-mark{
  width:44px;height:44px;border-radius:12px;
  background:linear-gradient(135deg,#1E88E5 0%,#1565C0 100%);
  color:#fff;box-shadow:0 8px 20px rgba(21,101,192,.24);
}
.auth-brand-mark svg{width:24px;height:24px}
.auth-brand-name{font-size:20px;font-weight:700;color:#1565C0;letter-spacing:.05em}

.auth-headline{
  margin:44px 0 0;font-size:34px;line-height:1.46;
  font-weight:700;color:#0D3C65;letter-spacing:.005em;
}
.auth-headline::after{
  content:"";display:block;width:44px;height:4px;border-radius:2px;
  background:#00BCD4;margin-top:20px;
}
.auth-lead{margin:22px 0 0;font-size:14px;line-height:1.9;color:#546E7A}

.auth-points{margin-top:40px;gap:24px}
.auth-points li{
  display:flex;align-items:flex-start;gap:14px;
  color:#0D3C65;font-size:14px;line-height:1.6;white-space:normal;
}
.auth-points li svg{
  width:19px;height:19px;padding:9px;box-sizing:content-box;flex:none;
  color:#1976D2;background:#E7F1FC;border-radius:50%;margin-top:0!important;
}
.auth-point-text{display:flex;flex-direction:column;gap:5px;min-width:0}
.auth-point-text strong{
  font-size:15px;font-weight:700;color:#0D3C65;line-height:1.5;letter-spacing:.01em;
}
.auth-point-text em{font-style:normal;font-size:13px;font-weight:400;color:#546E7A;line-height:1.65}

.auth-intro::before{
  right:6px;top:auto;bottom:88px;width:252px;height:296px;
  opacity:.95;filter:drop-shadow(0 22px 34px rgba(25,118,210,.2));
}
.auth-intro::after{height:118px;opacity:.85}

/* ---------- 右栏 ---------- */
.auth-form-panel{
  background:#fff;padding:76px 32px;align-items:stretch;justify-content:center;
}
.auth-form-panel > *{width:100%;max-width:400px;margin-left:auto;margin-right:auto}

.auth-tabs{
  display:flex;width:100%;max-width:300px;align-self:center;
  padding:4px;gap:4px;border-radius:999px;background:#F5F7FA;margin:0 auto;
}
.auth-tab{
  flex:1 1 0;padding:11px 0;border-radius:999px;background:transparent;
  font-size:15px;font-weight:500;color:#546E7A;letter-spacing:.02em;text-align:center;
  transition:background .18s ease,color .18s ease,box-shadow .18s ease;
}
.auth-tab:hover{color:#1976D2}
.auth-tab.is-active{
  background:#1976D2;color:#fff;font-weight:600;
  box-shadow:0 4px 12px rgba(25,118,210,.26);
}
.auth-tab.is-active:hover{color:#fff}

.auth-form-title{margin:34px 0 0;font-size:24px;font-weight:700;color:#1A202C;line-height:1.4}
.auth-form-desc{margin:8px 0 0;font-size:14px;line-height:1.7;color:#757575}

.auth-notice,.auth-error{margin-top:20px;border-radius:6px;font-size:13.5px}
.auth-notice{background:#F5F7FA;color:#37474F;border:1px solid #E8EEF5}
.auth-notice svg{color:#1976D2}
.auth-error{background:#FFF4F4;border:1px solid #FBD5D5;color:#C62828}
.auth-error svg{color:#E53935}

.auth-form{margin-top:26px;gap:18px}
.auth-field{gap:8px}
.auth-label{font-size:13px;font-weight:500;color:#37474F;letter-spacing:.01em}
.auth-input{
  height:48px;padding:0 14px;border:1px solid #E0E0E0;border-radius:6px;
  background:#fff;font-size:14px;color:#1A202C;letter-spacing:.01em;
  transition:border-color .16s ease,box-shadow .16s ease;
}
.auth-input:hover{border-color:#BDBDBD}
.auth-input:focus{border-color:#1976D2;background:#fff;box-shadow:0 0 0 3px rgba(25,118,210,.12)}
.auth-input::placeholder{color:#9E9E9E;font-size:14px}

.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(1) .auth-input,
.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(2) .auth-input{
  padding-left:44px;background-repeat:no-repeat;background-position:15px center;background-size:18px 18px;
}
.auth-form:has(input[autocomplete="current-password"]) .auth-field:nth-of-type(2) .auth-input{padding-right:46px}

.auth-field.has-eye{position:relative}
.auth-eye{
  position:absolute;right:8px;width:32px;height:32px;padding:0;border:0;border-radius:6px;
  background:transparent;color:#9E9E9E;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;z-index:2;
}
.auth-eye:hover{color:#1976D2;background:#F5F7FA}
.auth-eye svg{width:19px;height:19px}

.auth-submit{
  margin-top:10px;height:48px;border:0;border-radius:6px;
  background:#1976D2;color:#fff;font-size:16px;font-weight:700;letter-spacing:.08em;
  box-shadow:0 8px 18px rgba(25,118,210,.22);
  transition:background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.auth-submit:hover{background:#1565C0;box-shadow:0 10px 22px rgba(25,118,210,.28);transform:translateY(-1px)}
.auth-submit:active{background:#0D5EAF;transform:translateY(0);box-shadow:0 6px 14px rgba(25,118,210,.2)}
.auth-submit:disabled{background:#90CAF9;box-shadow:none;transform:none}

.auth-switch{margin-top:20px;text-align:center;font-size:14px;color:#546E7A;line-height:1.6}
.auth-link{
  color:#1976D2;font-weight:500;font-size:14px;text-decoration:none;
  border:0;background:transparent;padding:0;cursor:pointer;font-family:inherit;
}
.auth-link:hover{color:#1565C0;text-decoration:underline;text-underline-offset:3px}

.auth-copyright{
  flex:none;padding:14px 24px 20px;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:0 12px;
  background:transparent;font-size:12px;color:#9E9E9E;text-align:center;line-height:1.7;
}
.auth-copyright span,.auth-copyright-link{font-size:12px;color:#9E9E9E;text-decoration:none}
.auth-copyright-link:hover{color:#1976D2}

/* ---------- 窄屏 ---------- */
@media (max-width:980px){
  .auth-shell{grid-template-columns:1fr}
  .auth-intro{
    padding:48px 28px 104px;
    border-right:0;border-bottom:1px solid #EDF3FA;
  }
  .auth-brand-mark{width:40px;height:40px;border-radius:11px}
  .auth-brand-name{font-size:18px}
  .auth-headline{margin-top:30px;font-size:27px;line-height:1.44}
  .auth-headline::after{width:38px;height:3px;margin-top:16px}
  .auth-lead{margin-top:16px;font-size:13.5px}
  .auth-points{margin-top:28px;gap:18px}
  .auth-point-text strong{font-size:14px}
  .auth-point-text em{font-size:12.5px}
  .auth-intro::before{width:158px;height:186px;right:-6px;bottom:64px;opacity:.42}
  .auth-intro::after{height:92px;opacity:.7}
  .auth-form-panel{padding:40px 22px 52px}
  .auth-form-panel > *{max-width:430px}
  .auth-form-title{margin-top:28px;font-size:22px}
  .auth-tabs{max-width:280px}
}
@media (max-width:520px){
  .auth-intro{padding:38px 20px 92px}
  .auth-headline{font-size:24px}
  .auth-form-panel{padding:32px 18px 44px}
  .auth-input{height:46px}
  .auth-submit{height:46px}
  .auth-copyright{padding:12px 16px 16px;font-size:11px}
}
@media (prefers-reduced-motion: reduce){
  .auth-intro::before,.auth-intro::after{animation:none!important}
}

/* ===== 登录页改版 v3 修正 ===== */
.auth-form-panel>.auth-tabs,
.auth-form-panel>.auth-form-title,
.auth-form-panel>.auth-form-desc,
.auth-form-panel>.auth-notice,
.auth-form-panel>.auth-error,
.auth-form-panel>.auth-form{margin-left:auto!important;margin-right:auto!important}

.auth-copyright{margin:0!important;position:static!important}
.auth-copyright span,.auth-copyright-link{color:#9E9E9E!important}

.auth-intro>.auth-brand,
.auth-intro>.auth-headline,
.auth-intro>.auth-lead,
.auth-intro>.auth-points{max-width:436px}

.auth-intro::before{
  right:10px;top:auto;bottom:96px;width:212px;height:250px;
  opacity:.92;filter:drop-shadow(0 20px 30px rgba(25,118,210,.18));
}

.auth-intro::after{
  height:140px;opacity:1;
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.55) 34%, rgba(255,255,255,0) 72%),
    url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%20140%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%2084c120-42%20240%2030%20360%2010s240-64%20360-40%20240%2074%20360%2050%20120-12%20120-12v48H0z%27%20fill%3D%27%23C7E0F8%27%20fill-opacity%3D%27.72%27%2F%3E%3Cpath%20d%3D%27M0%20112c140-30%20260%2024%20400%206s260-50%20400-30%20260%2054%20400%2036V140H0z%27%20fill%3D%27%23AFD2F3%27%20fill-opacity%3D%27.75%27%2F%3E%3C%2Fsvg%3E");
  background-repeat:no-repeat, repeat-x;
  background-position:top left, bottom left;
  background-size:100% 140px, 1200px 140px;
}

@media (max-width:980px){
  .auth-intro>.auth-brand,
  .auth-intro>.auth-headline,
  .auth-intro>.auth-lead,
  .auth-intro>.auth-points{max-width:none}
  .auth-intro::before{width:150px;height:176px;right:-4px;bottom:70px;opacity:.4}
  .auth-intro::after{height:92px;background-size:100% 92px, 1200px 92px}
}

/* ===== 登录页改版 v3 · 插画与版式微调 ===== */
.auth-intro{padding-top:94px}
.auth-intro::before{
  right:6px;top:auto;bottom:92px;width:246px;height:276px;
  opacity:1;filter:drop-shadow(0 18px 28px rgba(25,118,210,.16));
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20420%20470%27%3E%20%3Cdefs%3E%20%3ClinearGradient%20id%3D%27g1%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%2366B8F6%27%2F%3E%3Cstop%20offset%3D%27.5%27%20stop-color%3D%27%2359A8E9%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%232E77C2%27%2F%3E%3C%2FlinearGradient%3E%20%3ClinearGradient%20id%3D%27g2%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%270%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23FFFFFF%27%20stop-opacity%3D%27.95%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23FFFFFF%27%20stop-opacity%3D%27.45%27%2F%3E%3C%2FlinearGradient%3E%20%3CradialGradient%20id%3D%27halo%27%20cx%3D%27.5%27%20cy%3D%27.5%27%20r%3D%27.5%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23C3E2FB%27%20stop-opacity%3D%27.9%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23C3E2FB%27%20stop-opacity%3D%270%27%2F%3E%3C%2FradialGradient%3E%20%3ClinearGradient%20id%3D%27card%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23FFFFFF%27%20stop-opacity%3D%27.92%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23E8F3FD%27%20stop-opacity%3D%27.7%27%2F%3E%3C%2FlinearGradient%3E%20%3C%2Fdefs%3E%20%3Cellipse%20cx%3D%27210%27%20cy%3D%27228%27%20rx%3D%27202%27%20ry%3D%27200%27%20fill%3D%27url%28%23halo%29%27%2F%3E%20%3Cellipse%20cx%3D%27212%27%20cy%3D%27436%27%20rx%3D%27116%27%20ry%3D%2718%27%20fill%3D%27%238CC0E9%27%20opacity%3D%27.32%27%2F%3E%20%3Crect%20x%3D%2796%27%20y%3D%27118%27%20width%3D%27240%27%20height%3D%27244%27%20rx%3D%2744%27%20fill%3D%27url%28%23card%29%27%2F%3E%20%3Crect%20x%3D%2796%27%20y%3D%27118%27%20width%3D%27240%27%20height%3D%27244%27%20rx%3D%2744%27%20fill%3D%27none%27%20stroke%3D%27%23FFFFFF%27%20stroke-opacity%3D%27.8%27%20stroke-width%3D%272%27%2F%3E%20%3Cpath%20d%3D%27M210%2072l128%2046v110c0%2082-56%20132-128%20166-72-34-128-84-128-166V118z%27%20fill%3D%27url%28%23g1%29%27%2F%3E%20%3Cpath%20d%3D%27M210%20102l100%2036v90c0%2064-44%20104-100%20132-56-28-100-68-100-132v-90z%27%20fill%3D%27none%27%20stroke%3D%27url%28%23g2%29%27%20stroke-width%3D%276%27%20stroke-opacity%3D%27.85%27%2F%3E%20%3Cpath%20d%3D%27M166%20238l32%2032%2060-64%27%20fill%3D%27none%27%20stroke%3D%27%23FFFFFF%27%20stroke-width%3D%2719%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%2F%3E%20%3Ccircle%20cx%3D%27336%27%20cy%3D%27112%27%20r%3D%2711%27%20fill%3D%27%238FD3F0%27%20opacity%3D%27.85%27%2F%3E%20%3Ccircle%20cx%3D%2774%27%20cy%3D%27196%27%20r%3D%277%27%20fill%3D%27%23B7DDF9%27%2F%3E%20%3Ccircle%20cx%3D%27330%27%20cy%3D%27330%27%20r%3D%275%27%20fill%3D%27%23B7DDF9%27%2F%3E%20%3C%2Fsvg%3E");
  background-size:contain;background-repeat:no-repeat;background-position:bottom right;
}
.auth-copyright{font-size:12.5px}
.auth-copyright span,.auth-copyright-link{font-size:12.5px}
@media (max-width:980px){
  .auth-intro{padding-top:44px}
  .auth-intro::before{width:152px;height:170px;right:-2px;bottom:66px;opacity:.45}
}

/* ===== 登录页改版 v3 · 插画/波浪终稿 ===== */
.auth-intro::before{
  right:2px;top:auto;bottom:88px;width:252px;height:288px;opacity:1;
  filter:drop-shadow(0 16px 26px rgba(25,118,210,.14));
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%20420%20480%27%3E%20%3Cdefs%3E%20%3ClinearGradient%20id%3D%27g1%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%239ED9FB%27%2F%3E%3Cstop%20offset%3D%27.48%27%20stop-color%3D%27%2359A8E9%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%232E77C2%27%2F%3E%3C%2FlinearGradient%3E%20%3ClinearGradient%20id%3D%27g2%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%270%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23FFFFFF%27%20stop-opacity%3D%27.95%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23FFFFFF%27%20stop-opacity%3D%27.4%27%2F%3E%3C%2FlinearGradient%3E%20%3CradialGradient%20id%3D%27halo%27%20cx%3D%27.5%27%20cy%3D%27.5%27%20r%3D%27.5%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23C9E5FC%27%20stop-opacity%3D%27.95%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23C9E5FC%27%20stop-opacity%3D%270%27%2F%3E%3C%2FradialGradient%3E%20%3CradialGradient%20id%3D%27base%27%20cx%3D%27.5%27%20cy%3D%27.5%27%20r%3D%27.5%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23BFDFFA%27%20stop-opacity%3D%27.95%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23BFDFFA%27%20stop-opacity%3D%270%27%2F%3E%3C%2FradialGradient%3E%20%3ClinearGradient%20id%3D%27card%27%20x1%3D%270%27%20y1%3D%270%27%20x2%3D%271%27%20y2%3D%271%27%3E%3Cstop%20offset%3D%270%27%20stop-color%3D%27%23FFFFFF%27%20stop-opacity%3D%27.9%27%2F%3E%3Cstop%20offset%3D%271%27%20stop-color%3D%27%23E9F4FD%27%20stop-opacity%3D%27.65%27%2F%3E%3C%2FlinearGradient%3E%20%3C%2Fdefs%3E%20%3Cellipse%20cx%3D%27210%27%20cy%3D%27230%27%20rx%3D%27204%27%20ry%3D%27204%27%20fill%3D%27url%28%23halo%29%27%2F%3E%20%3Cellipse%20cx%3D%27210%27%20cy%3D%27432%27%20rx%3D%27132%27%20ry%3D%2726%27%20fill%3D%27url%28%23base%29%27%2F%3E%20%3Cellipse%20cx%3D%27210%27%20cy%3D%27428%27%20rx%3D%2796%27%20ry%3D%2714%27%20fill%3D%27%23A8CFF0%27%20opacity%3D%27.55%27%2F%3E%20%3Crect%20x%3D%2798%27%20y%3D%27112%27%20width%3D%27236%27%20height%3D%27246%27%20rx%3D%2746%27%20fill%3D%27url%28%23card%29%27%2F%3E%20%3Crect%20x%3D%2798%27%20y%3D%27112%27%20width%3D%27236%27%20height%3D%27246%27%20rx%3D%2746%27%20fill%3D%27none%27%20stroke%3D%27%23FFFFFF%27%20stroke-opacity%3D%27.9%27%20stroke-width%3D%272%27%2F%3E%20%3Cpath%20d%3D%27M210%2066l126%2045v112c0%2082-56%20132-126%20166-70-34-126-84-126-166V111z%27%20fill%3D%27url%28%23g1%29%27%2F%3E%20%3Cpath%20d%3D%27M210%2096l99%2035v91c0%2063-43%20103-99%20131-56-28-99-68-99-131v-91z%27%20fill%3D%27none%27%20stroke%3D%27url%28%23g2%29%27%20stroke-width%3D%275.5%27%20stroke-opacity%3D%27.9%27%2F%3E%20%3Cpath%20d%3D%27M178%20202l20%2022%2046-58%27%20fill%3D%27none%27%20stroke%3D%27%23FFFFFF%27%20stroke-width%3D%2724%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%20opacity%3D%27.98%27%2F%3E%20%3Ccircle%20cx%3D%27340%27%20cy%3D%27108%27%20r%3D%2710%27%20fill%3D%27%238FD3F0%27%20opacity%3D%27.9%27%2F%3E%20%3Ccircle%20cx%3D%2770%27%20cy%3D%27192%27%20r%3D%277%27%20fill%3D%27%23B7DDF9%27%2F%3E%20%3Ccircle%20cx%3D%27332%27%20cy%3D%27328%27%20r%3D%275%27%20fill%3D%27%23B7DDF9%27%2F%3E%20%3C%2Fsvg%3E");
  background-repeat:no-repeat;background-position:bottom right;background-size:contain;
}
.auth-intro::after{
  height:150px;opacity:1;animation:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%20150%27%20preserveAspectRatio%3D%27none%27%3E%20%3Cpath%20d%3D%27M0%2062c150-46%20300%2026%20450%208s300-58%20450-36%20150%2034%20150%2034V150H0z%27%20fill%3D%27%23FFFFFF%27%20fill-opacity%3D%27.92%27%2F%3E%20%3Cpath%20d%3D%27M0%2096c170-32%20320%2022%20480%204s330-46%20490-28%20110%2022%20110%2022V150H0z%27%20fill%3D%27%23FFFFFF%27%2F%3E%20%3C%2Fsvg%3E");
  background-repeat:repeat-x;background-position:bottom left;background-size:1200px 150px;
}
@media (max-width:980px){
  .auth-intro::before{width:158px;height:178px;right:-2px;bottom:62px;opacity:.5}
  .auth-intro::after{height:96px;background-size:1200px 96px}
}

/* ===== 登录页改版 v3 · 收尾校准 ===== */
.auth-page{background-color:#FFFFFF}
.auth-copyright{background:#FFFFFF}
.auth-intro{
  background:linear-gradient(135deg,#E6F2FD 0%,#EFF7FE 46%,#FBFDFF 100%);
}
.auth-intro>.auth-brand,
.auth-intro>.auth-headline,
.auth-intro>.auth-lead,
.auth-intro>.auth-points{max-width:420px!important}
.auth-intro::before{
  right:10px;bottom:94px;width:200px;height:228px;
}
@media (max-width:980px){
  .auth-intro>.auth-brand,
  .auth-intro>.auth-headline,
  .auth-intro>.auth-lead,
  .auth-intro>.auth-points{max-width:none!important}
  .auth-intro::before{width:140px;height:160px;right:-2px;bottom:62px;opacity:.5}
}

/* ===== 登录页改版 v4 · 参照稿第二轮像素微调 ===== */
/* 1) 品牌 Logo 容器：去圆角方块底，交给盾牌人形 SVG 自身造型 */
.auth-brand-mark{
  width:40px!important;height:40px!important;
  background:none!important;background-color:transparent!important;
  border-radius:0!important;box-shadow:none!important;
}
.auth-brand-mark>svg{width:36px!important;height:40px!important;display:block!important}

/* 2) 品牌名与 Logo 之间补竖线分隔 */
.auth-brand{gap:10px!important}
.auth-brand-name{position:relative;padding-left:14px}
.auth-brand-name::before{
  content:"";position:absolute;left:0;top:50%;margin-top:-9px;
  width:1px;height:18px;background-color:#C6D8EC;
}

/* 3) 特性列表图标：去掉实心底圆与内边距，改为 1.7px 线框描边 #1976D2 */
.auth-points li svg{
  width:20px!important;height:20px!important;
  padding:0!important;box-sizing:border-box!important;
  background:none!important;background-color:transparent!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;
  color:#1976D2!important;stroke:#1976D2!important;fill:none!important;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
  margin-top:3px;
}
.auth-points li{gap:12px!important}

/* 4) 盾牌 3D 插画：贴靠特性列表右侧、与列表下半段平行（右下方相对定位） */
.auth-intro::before{
  right:6px!important;bottom:150px!important;
  width:190px!important;height:216px!important;opacity:.96;
}
@media (max-width:980px){
  .auth-brand-mark{width:34px!important;height:34px!important}
  .auth-brand-mark>svg{width:30px!important;height:34px!important}
  .auth-intro::before{right:-2px!important;bottom:96px!important;width:146px!important;height:166px!important;opacity:.45}
}

@media (max-width:1400px) and (min-width:1181px){
  .auth-intro::before{right:0!important;bottom:126px!important;width:158px!important;height:178px!important;opacity:.55}
}
@media (max-width:1180px) and (min-width:981px){
  .auth-intro::before{right:-6px!important;bottom:24px!important;width:140px!important;height:158px!important;opacity:.34}
}

/* 5) 主按钮：6px 微圆角（覆盖早期胶囊圆角） */
.auth-submit{border-radius:6px!important}

/* 6) 辅助链接：问号后留出少量间距 */
.auth-switch .auth-link{padding-left:2px}

/* ===== 登录页改版 v5 · 第三轮收尾（参照稿底纹/说明小字/备案信息） =====
   1) 左栏：浅冰蓝波浪 + 几何斜向光带底纹（基调 #E6F2FD → #FFFFFF）
   2) 右栏：标题下灰色说明小字间距对齐参照稿
   3) 底部：版权与备案信息统一 12px #9E9E9E 居中
   仅视觉层覆盖，不改动任何交互与接口逻辑 */
.auth-intro{
  background-color:#F5FAFF!important;
  background-image:
    linear-gradient(117deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 30%,
      rgba(198,226,249,.24) 44%,
      rgba(228,242,252,.16) 56%,
      rgba(255,255,255,0) 71%,
      rgba(255,255,255,0) 100%),
    url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%20900%27%20preserveAspectRatio%3D%27none%27%20fill%3D%27none%27%20stroke%3D%27%238FC6F2%27%20stroke-opacity%3D%27.16%27%20stroke-width%3D%272.2%27%3E%3Cpath%20d%3D%27M-80%20232c260-64%20420%2080%20680%2036s410-104%20680-36%27%2F%3E%3Cpath%20d%3D%27M-80%20300c260-64%20420%2080%20680%2036s410-104%20680-36%27%2F%3E%3Cpath%20d%3D%27M-80%20368c260-64%20420%2080%20680%2036s410-104%20680-36%27%2F%3E%3Cpath%20d%3D%27M-80%20436c260-64%20420%2080%20680%2036s410-104%20680-36%27%20stroke-opacity%3D%27.15%27%2F%3E%3C%2Fsvg%3E"),
    radial-gradient(132% 82% at 100% -6%,
      rgba(255,255,255,.97) 0%,
      rgba(255,255,255,.58) 40%,
      rgba(255,255,255,0) 68%),
    url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%20900%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M-60%20812c180-96%20300%2040%20470-26s260-118%20420-70%20250%2060%20430%206%27%20fill%3D%27none%27%20stroke%3D%27%237FBCEC%27%20stroke-opacity%3D%27.42%27%20stroke-width%3D%272.6%27%2F%3E%3Cpath%20d%3D%27M-60%20862c180-96%20300%2040%20470-26s260-118%20420-70%20250%2060%20430%206%27%20fill%3D%27none%27%20stroke%3D%27%237FBCEC%27%20stroke-opacity%3D%27.24%27%20stroke-width%3D%272.2%27%2F%3E%3C%2Fsvg%3E"),
    url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%201200%20900%27%20preserveAspectRatio%3D%27none%27%3E%3Cpath%20d%3D%27M0%20356c160-58%20300%2056%20520%2022s420-102%20680-38V900H0Z%27%20fill%3D%27%23BFDFF9%27%20fill-opacity%3D%27.21%27%2F%3E%3Cpath%20d%3D%27M0%20486c190-60%20340%2060%20580%2018s400-92%20620-26V900H0Z%27%20fill%3D%27%23A6D0F4%27%20fill-opacity%3D%27.15%27%2F%3E%3Cpath%20d%3D%27M0%20626c210-60%20380%2060%20620%2016s380-86%20580-24V900H0Z%27%20fill%3D%27%238CC3F0%27%20fill-opacity%3D%27.12%27%2F%3E%3C%2Fsvg%3E"),
    linear-gradient(135deg,#E6F2FD 0%,#EFF7FE 46%,#FBFDFF 100%)!important;
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,no-repeat,no-repeat!important;
  background-position:
    0 0,
    0 0,
    0 0,
    0 100%,
    0 100%,
    0 0!important;
  background-size:
    100% 100%,
    100% 100%,
    100% 100%,
    100% 42%,
    100% 100%,
    100% 100%!important;
}

/* 右栏：标题与说明小字的间距对齐参照稿（标题底 → 小字约 20px） */
.auth-form-desc{margin-top:20px!important;font-size:14px!important;line-height:1.7!important;color:#757575!important}

/* 底部：版权 + 备案信息，12px #9E9E9E 居中一行 */
.auth-copyright{font-size:12px!important;color:#9E9E9E!important;justify-content:center!important;text-align:center!important}
.auth-copyright span,.auth-copyright-link,.auth-copyright a{font-size:12px!important;line-height:1.6!important;color:#9E9E9E!important}

@media (max-width:980px){
  .auth-intro{background-size:100% 100%,100% 100%,100% 100%,100% 40%,100% 100%,100% 100%!important}
}

/* 底部白波适度透出下方冰蓝波纹，使左栏底缘与参照稿的浅蓝过渡一致 */
.auth-intro::after{opacity:.86!important}


/* ===== 登录页改版 v5 · 参照稿最后一轮细节收尾 ===== */
/* 1) 特性列表图标：白圆底 + #1976D2 蓝色线框图标（38px 圆，图标 20px，占比约五成） */
.auth-points li svg{
  width:20px!important;height:20px!important;
  padding:9px!important;box-sizing:content-box!important;
  background:#FFFFFF!important;
  border:0!important;border-radius:50%!important;
  box-shadow:0 3px 9px rgba(25,118,210,.16)!important;
  color:#1976D2!important;stroke:#1976D2!important;fill:none!important;
  stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
  margin-top:0!important;
}

/* 委员名册表格：列宽收敛 + 长文本单行省略（hover 显示完整内容） */
.roster-table-panel .table-wrap {
  overflow-x: auto
}
.roster-table-panel .data-table.full-table {
  table-layout: fixed;
  width: 100%;
  min-width: 1104px
}
.roster-table-panel .data-table.full-table th,
.roster-table-panel .data-table.full-table td {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle
}
.roster-table-panel .data-table.full-table th:nth-child(1) { width: 100px }
.roster-table-panel .data-table.full-table th:nth-child(2) { width: 76px }
.roster-table-panel .data-table.full-table th:nth-child(3) { width: 42px }
.roster-table-panel .data-table.full-table th:nth-child(4) { width: 98px }
.roster-table-panel .data-table.full-table th:nth-child(5) { width: 88px }
.roster-table-panel .data-table.full-table th:nth-child(6) { width: 110px }
.roster-table-panel .data-table.full-table th:nth-child(7) { width: 80px }
.roster-table-panel .data-table.full-table th:nth-child(8) { width: 70px }
.roster-table-panel .data-table.full-table th:nth-child(9) { width: 156px }
.roster-table-panel .data-table.full-table th:nth-child(10) { width: 54px }
.roster-table-panel .data-table.full-table th:nth-child(11) { width: 48px }
.roster-table-panel .data-table.full-table th:nth-child(12) { width: 200px }
.roster-table-panel .data-table.full-table tbody tr,
.roster-table-panel .data-table.full-table tbody td {
  height: 72px
}
.roster-table-panel .data-table.full-table td.roster-cell-areas {
  font-size: 12.5px;
  color: #334155
}
.roster-table-panel .data-table.full-table td.roster-cell-clip,
.roster-table-panel .data-table.full-table td.roster-cell-areas {
  cursor: default
}
.roster-table-panel .data-table.full-table td:last-child {
  overflow: visible;
  text-overflow: clip;
  white-space: nowrap
}
.roster-table-panel .data-table.full-table td:last-child > div {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2px
}
.roster-table-panel .data-table.full-table td:last-child button {
  height: 28px;
  padding: 0 5px;
  font-size: 12px;
  white-space: nowrap;
  flex: 0 0 auto
}
@media (max-width: 1180px) {
  .roster-table-panel .data-table.full-table {
    min-width: 1040px
  }
}

.roster-field textarea {
  width: 100%;
  min-height: 62px;
  max-height: 160px;
  border: 1px solid #EDF2F7;
  border-radius: 8px;
  background: #fff;
  padding: 10px 12px;
  color: #1E293B;
  font: inherit;
  font-weight: 450;
  line-height: 1.5;
  resize: vertical
}
.roster-field textarea:focus {
  border-color: #2864A5;
  box-shadow: 0 0 0 3px #2864A51f;
  outline: none
}
.roster-field textarea::placeholder {
  color: #94A3B8
}

/* 三项保护方案说明输入框（B+C 改造） */
.protection-item {
  border-bottom: 1px solid #EDF2F7;
  padding-bottom: 8px;
}
.protection-item .toggle-row {
  border-bottom: none;
}
.protection-item textarea {
  width: 100%;
  box-sizing: border-box;
  margin: 0 0 8px;
  padding: 8px 10px;
  border: 1px solid #D8E1DA;
  border-radius: 8px;
  background: #FFFFFF;
  color: #24312A;
  font: inherit;
  font-size: 13px;
  line-height: 1.55;
  resize: vertical;
}
.protection-item textarea::placeholder {
  color: #9AA8A0;
}
.protection-item textarea:focus {
  outline: none;
  border-color: #3F8F5B;
  box-shadow: 0 0 0 2px rgba(63, 143, 91, 0.14);
}
