:root {
  --bg: #f3f4f7;
  --panel: #ffffff;
  --line: #d8dce5;
  --line-dark: #9aa1ad;
  --muted: #6f7785;
  --text: #111827;
  --purple: #5a32ff;
  --purple-dark: #4224c9;
  --head: #e7e7e7;
  --soft: #fafafa;
  --blue: #0056c7;
  --accent: #b70000;
  --dark: #202838;
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: "Pretendard", "Malgun Gothic", "Apple SD Gothic Neo", Arial,
    sans-serif;
  font-size: 13px;
}

button,
input,
select {
  font: inherit;
}

.storyboard-shell {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100vh;
  min-width: 1280px;
  padding: 14px;
  gap: 12px;
}

.storyboard-header {
  display: grid;
  grid-template-columns: 1.35fr 1.35fr 0.8fr auto;
  background: var(--dark);
  border-radius: 8px;
}

.header-cell {
  display: flex;
  gap: 8px;
  padding: 20px 30px;
  border-right: 1px solid rgba(255, 255, 255, 0.2);
  font-size: 14px;
  color: #fff;
}

.header-cell:last-child {
  border-right: 0;
}

.header-cell .label {
  color: rgba(255, 255, 255, 0.7);
}

.header-cell strong {
  letter-spacing: 0;
}

.code-cell strong {
  color: #95ffa8;
}

.header-print-action { display: flex; align-items: center; justify-content: flex-end; padding: 12px 16px; }
.print-export-link { display: inline-flex; align-items: center; justify-content: center; min-height: 34px; padding: 0 14px; border: 1px solid #7f61ff; border-radius: 4px; background: #5b32f2; color: #fff; font-size: 13px; font-weight: 800; text-decoration: none; }
.print-export-link:hover { background: #4723d7; }
.pdf-export .header-print-action { display: none; }
@media print {
  html, body, body * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  body.is-invoice-printing > *:not(.invoice-preview-modal) {
    display: none !important;
  }
  body.is-invoice-printing > .invoice-preview-modal[hidden] {
    display: none !important;
  }
  body.is-invoice-printing > .invoice-preview-modal:not([hidden]) {
    position: static !important;
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  body.is-invoice-printing .invoice-preview-dialog {
    width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  body.is-invoice-printing .invoice-preview-dialog > h2,
  body.is-invoice-printing .invoice-preview-actions {
    display: none !important;
  }
  body.is-invoice-printing .billing-notice-sheet {
    margin: 0 auto !important;
  }
  body.is-invoice-printing .utility-bill-grid {
    width: 100% !important;
  }
}

.storyboard-main {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(250px, 2fr);
  min-height: 0;
  gap: 12px;
}

.screen-panel,
.note-panel {
  min-height: 0;
}

.screen-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
}

.page-tabs {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 4px;
  padding: 8px 10px 0;
  border-bottom: 1px solid var(--dark);
  min-width: 0;
  overflow: visible;
}

.tab-button {
  flex: 0 0 auto;
  width: max-content;
  min-width: 92px;
  height: 34px;
  padding: 0 14px;
  border: 1px solid var(--line);
  border-bottom: 0;
  background: #fff;
  color: #394150;
  cursor: pointer;
  border-radius: 5px 5px 0 0;
  white-space: nowrap;
}

.tab-button.is-active {
  background: var(--dark);
  border-color: var(--dark);
  color: #fff;
  font-weight: 700;
}

.screen-scroll,
.note-scroll {
  min-height: 0;
  background: var(--panel);
  border: 1px solid var(--line);
  border-top: 0;
}

.screen-scroll {
  overflow: hidden;
  padding: 18px;
}

.note-scroll {
  overflow: auto;
}

.screen-frame {
  display: block;
  width: 100%;
  min-width: 1180px;
  height: 100%;
  min-height: 760px;
  border: 0;
  background: #fff;
}

.note-panel {
  display: grid;
  grid-template-rows: 42px minmax(0, 1fr);
}

.note-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 14px;
  border-bottom: 1px solid var(--dark);
  font-weight: 700;
}

.note-head button {
  height: 26px;
  padding: 0 10px;
  border: 1px solid var(--line);
  background: #fff;
  cursor: pointer;
}

.note-scroll {
  padding: 12px;
}

.note-card {
  margin-bottom: 10px;
  padding: 12px;
  border: 1px solid var(--line);
  background: #fff;
}

.note-card.is-active {
  border-color: var(--accent);
  box-shadow: inset 3px 0 0 var(--accent);
}

.note-card h3 {
  margin: 0 0 8px;
  font-size: 14px;
}

.note-card p {
  margin: 0;
  color: #394150;
  line-height: 1.65;
}

.note-card ul {
  margin: 8px 0 0;
  padding-left: 18px;
  line-height: 1.7;
}

.admin-frame {
  display: grid;
  grid-template-columns: 228px minmax(950px, 1fr);
  min-height: 900px;
  background: #f1f2f5;
  border: 1px solid #e4e6eb;
}

.login-page {
  display: grid;
  place-items: center;
  min-height: 900px;
  padding: 56px 24px;
  background: radial-gradient(
      circle at 15% 12%,
      rgba(28, 149, 179, 0.12),
      transparent 27%
    ),
    radial-gradient(circle at 88% 84%, rgba(229, 91, 89, 0.1), transparent 24%),
    #f4f7fa;
}

.login-card {
  position: relative;
  width: 400px;
  min-height: 370px;
  padding: 46px 32px 64px;
  border: 1px solid #e5e9ef;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(36, 51, 72, 0.1);
  text-align: center;
}

.login-card-wide {
  width: 560px;
  min-height: 680px;
  padding: 38px 48px 34px;
}

.login-title {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
}

.login-logo {
  display: block;
  width: min(100%, 280px);
  height: auto;
}

.login-subtitle {
  margin-bottom: 26px;
  color: #697386;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.login-role-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 28px;
}

.login-role-tab {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 74px;
  padding: 14px 16px;
  border: 1px solid #d9e0e8;
  border-radius: 12px;
  background: #fff;
  color: #6d7787;
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.2s,
    background 0.2s,
    color 0.2s,
    box-shadow 0.2s;
}

.login-role-tab:hover {
  border-color: #79a9b7;
  background: #f7fbfc;
}

.login-role-tab.is-active {
  border-color: #178fa9;
  background: #f0fafc;
  color: #155b6d;
  box-shadow: inset 0 0 0 1px #178fa9;
}

.login-role-icon {
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #eef2f6;
  font-size: 19px;
}

.login-role-tab.is-active .login-role-icon {
  background: #d9f1f5;
}

.login-role-tab strong,
.login-role-tab small {
  display: block;
}

.login-role-tab strong {
  margin-bottom: 4px;
  font-size: 16px;
}

.login-role-tab small {
  color: #8993a2;
  font-size: 11px;
  white-space: nowrap;
}

.login-panel[hidden] {
  display: none;
}

.login-panel-head {
  margin-bottom: 20px;
  text-align: left;
}

.login-panel-head h1 {
  margin: 0 0 6px;
  color: #1b2638;
  font-size: 22px;
}

.login-panel-head p {
  margin: 0;
  color: #7b8595;
  font-size: 13px;
}

.login-form {
  display: grid;
  gap: 14px;
}

.login-field {
  display: grid;
  gap: 7px;
  color: #344054;
  font-size: 13px;
  font-weight: 700;
  text-align: left;
}

.login-input {
  width: 100%;
  height: 48px;
  border: 1px solid #ccd4df;
  border-radius: 8px;
  padding: 0 14px;
  background: #fff;
  color: #1b2638;
  outline: none;
}

.login-input:focus {
  border-color: #178fa9;
  box-shadow: 0 0 0 3px rgba(23, 143, 169, 0.12);
}

.login-options {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin: 14px 0 20px;
  color: #7b8595;
  font-size: 12px;
}

.login-options label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.login-primary-button {
  width: 100%;
  height: 50px;
  border: 0;
  border-radius: 9px;
  background: #26729a;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
  cursor: pointer;
  box-shadow: 0 10px 18px rgba(38, 114, 154, 0.18);
}

.login-primary-button.is-admin {
  background: #18566d;
  box-shadow: 0 10px 18px rgba(24, 86, 109, 0.2);
}

.login-primary-button:hover {
  filter: brightness(0.96);
}

.login-secondary-button {
  width: 100%;
  height: 46px;
  margin-top: 10px;
  border: 1px solid #e3605b;
  border-radius: 9px;
  background: #e3605b;
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.tenant-signup-card {
  width: min(760px, calc(100vw - 40px));
  min-height: 0;
  padding: 38px 48px 34px;
}

.tenant-signup-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
  margin-top: 22px;
}

.tenant-signup-form .login-field.is-wide {
  grid-column: 1 / -1;
}

.login-type-help {
  margin: 12px 0 0;
  color: #7b8595;
  font-size: 12px;
}

.login-type-help strong {
  color: #d05a57;
}

.login-help {
  margin: 28px 0 0;
  padding-top: 22px;
  border-top: 1px solid #edf0f4;
  color: #a0a7b2;
  font-size: 11px;
  line-height: 1.6;
}

.tenant-dashboard-page {
  min-height: 900px;
  background: #f3f6f8;
  color: #243043;
}

.tenant-portal-head {
  display: grid;
  grid-template-columns: 250px minmax(420px, 1fr) auto;
  align-items: center;
  min-height: 82px;
  padding: 0 36px;
  border-bottom: 1px solid #e1e6eb;
  background: #fff;
  box-shadow: 0 4px 18px rgba(31, 47, 67, 0.04);
}

.tenant-portal-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}

.tenant-portal-brand img {
  width: 190px;
  height: auto;
}

.tenant-portal-brand span {
  color: #667386;
  font-size: 11px;
  font-weight: 700;
}

.tenant-portal-head nav {
  display: flex;
  align-self: stretch;
  justify-content: center;
  gap: 6px;
}

.tenant-portal-head nav button {
  position: relative;
  min-width: 82px;
  border: 0;
  padding: 0 16px;
  background: transparent;
  color: #566174;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}

.tenant-portal-head nav button.is-current {
  color: #167f98;
}

.tenant-portal-head nav button.is-current::after {
  content: "";
  position: absolute;
  right: 14px;
  bottom: 0;
  left: 14px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: #178fa9;
}

.tenant-user-tools {
  display: flex;
  align-items: center;
  gap: 14px;
  color: #687386;
  font-size: 12px;
}

.tenant-user-tools strong {
  color: #243043;
}

.tenant-user-tools button {
  height: 32px;
  border: 1px solid #d8dee6;
  border-radius: 6px;
  padding: 0 12px;
  background: #fff;
  color: #596579;
  font-size: 12px;
  cursor: pointer;
}

.tenant-dashboard-main {
  width: min(1180px, calc(100% - 64px));
  margin: 0 auto;
  padding: 42px 0 64px;
}

.tenant-welcome {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 26px;
}

.tenant-eyebrow {
  display: block;
  margin-bottom: 8px;
  color: #178fa9;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

.tenant-welcome h1 {
  margin: 0 0 8px;
  color: #1d2939;
  font-size: 29px;
  letter-spacing: -0.04em;
}

.tenant-welcome p {
  margin: 0;
  color: #768195;
  font-size: 14px;
}

.tenant-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid #a9d8c8;
  border-radius: 999px;
  padding: 9px 14px;
  background: #eefaf6;
  color: #28745d;
  font-size: 12px;
  font-weight: 800;
}

.tenant-status-badge::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #34a67e;
}

.tenant-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.tenant-summary-grid article {
  min-height: 132px;
  border: 1px solid #e0e6ec;
  border-radius: 12px;
  padding: 20px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(40, 56, 77, 0.04);
}

.tenant-summary-grid span,
.tenant-summary-grid strong,
.tenant-summary-grid small {
  display: block;
}

.tenant-summary-grid span {
  margin-bottom: 14px;
  color: #758095;
  font-size: 12px;
  font-weight: 700;
}

.tenant-summary-grid strong {
  min-height: 34px;
  color: #253247;
  font-size: 17px;
  letter-spacing: -0.03em;
}

.tenant-summary-grid strong.is-alert {
  color: #d45752;
  font-size: 24px;
}

.tenant-summary-grid small {
  margin-top: 8px;
  color: #9aa2ae;
  font-size: 11px;
}

.tenant-content-grid {
  display: grid;
  grid-template-columns: 1.25fr 0.75fr;
  gap: 20px;
  margin-bottom: 20px;
}

.tenant-content-card {
  min-height: 286px;
  border: 1px solid #e0e6ec;
  border-radius: 12px;
  padding: 22px;
  background: #fff;
  box-shadow: 0 7px 20px rgba(40, 56, 77, 0.04);
}

.tenant-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 14px;
}

.tenant-card-head h2 {
  margin: 0;
  color: #253247;
  font-size: 17px;
}

.tenant-card-head button {
  border: 0;
  background: none;
  color: #8791a1;
  font-size: 11px;
  cursor: pointer;
}

.tenant-task-card ul,
.tenant-notice-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tenant-task-card li {
  display: grid;
  grid-template-columns: 42px 1fr auto;
  align-items: center;
  gap: 12px;
  min-height: 66px;
  border-top: 1px solid #edf0f3;
}

.task-state {
  display: inline-grid;
  place-items: center;
  height: 27px;
  border-radius: 6px;
  background: #eef4f6;
  color: #417486;
  font-size: 10px;
  font-weight: 800;
}

.task-state.is-urgent {
  background: #fff0ef;
  color: #d45752;
}

.tenant-task-card li strong,
.tenant-task-card li small {
  display: block;
}

.tenant-task-card li strong {
  margin-bottom: 5px;
  color: #344054;
  font-size: 13px;
}

.tenant-task-card li small {
  color: #98a1ae;
  font-size: 10px;
}

.tenant-task-card li > button {
  height: 30px;
  border: 1px solid #cad5df;
  border-radius: 6px;
  padding: 0 11px;
  background: #fff;
  color: #536276;
  font-size: 11px;
  cursor: pointer;
}

.tenant-notice-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 52px;
  border-top: 1px solid #edf0f3;
}

.tenant-notice-list a {
  overflow: hidden;
  color: #3c485b;
  font-size: 12px;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tenant-notice-list span {
  color: #a0a8b4;
  font-size: 10px;
}

.tenant-quick-menu {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.tenant-quick-menu button {
  display: grid;
  min-height: 112px;
  border: 1px solid #e0e6ec;
  border-radius: 12px;
  padding: 18px;
  background: #fff;
  color: #253247;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 7px 20px rgba(40, 56, 77, 0.04);
}

.tenant-quick-menu button:hover {
  border-color: #8fc4d0;
  transform: translateY(-1px);
}

.tenant-quick-menu span {
  margin-bottom: 10px;
  color: #178fa9;
  font-size: 10px;
  font-weight: 800;
}

.tenant-quick-menu strong {
  margin-bottom: 5px;
  font-size: 14px;
}

.tenant-quick-menu small {
  color: #929ba8;
  font-size: 10px;
}

.otp-page {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 900px;
  background: #4a4a4a;
}

.otp-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.18);
}

.otp-dialog {
  position: relative;
  z-index: 1;
  width: 350px;
  min-height: 430px;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(0, 0, 0, 0.22);
  overflow: hidden;
}

.otp-dialog::before {
  content: "";
  position: absolute;
  inset: -43px -25px 63px;
  z-index: -1;
  background: rgba(255, 255, 255, 0.03);
}

.otp-dialog-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 55px;
  padding: 0 20px;
  border-bottom: 1px solid #d8dce5;
}

.otp-dialog-head h1 {
  margin: 0;
  font-size: 18px;
  font-weight: 800;
}

.otp-head-close {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border: 0;
  border-radius: 50%;
  background: #b9b9b9;
  color: #fff;
  font-size: 13px;
  line-height: 1;
  cursor: pointer;
}

.otp-dialog-body {
  min-height: 315px;
  padding: 45px 20px 24px;
}

.otp-field-group {
  margin-bottom: 26px;
}

.otp-field-group label {
  display: block;
  margin-bottom: 10px;
  font-weight: 700;
}

.required {
  color: #ff2b2b;
}

.otp-send-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 60px;
  gap: 4px;
}

.otp-select,
.otp-code-input {
  height: 30px;
  border: 1px solid #d8d8d8;
  border-radius: 3px;
  background: #f4f4f4;
}

.otp-select {
  width: 100%;
  padding: 0 10px;
  color: #555;
}

.otp-send-button,
.otp-submit-button {
  border: 0;
  border-radius: 4px;
  background: var(--purple);
  color: #fff;
  font-weight: 800;
  cursor: pointer;
}

.otp-send-button {
  height: 30px;
}

.otp-code-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  margin-bottom: 8px;
}

.otp-code-input {
  width: 100%;
  padding: 0 8px;
  text-align: center;
}

.otp-help {
  display: flex;
  align-items: center;
  gap: 4px;
  margin: 5px 0 0;
  color: #8a8a8a;
  font-size: 12px;
  line-height: 1.35;
}

.otp-help span {
  display: inline-grid;
  place-items: center;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #aaa;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
}

.otp-help strong {
  color: #f04a4a;
}

.otp-dialog-foot {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 60px;
  border-top: 1px solid #d8dce5;
}

.otp-submit-button,
.otp-cancel-button {
  min-width: 58px;
  height: 30px;
  padding: 0 16px;
}

.otp-cancel-button {
  border: 1px solid #d5d5d5;
  border-radius: 4px;
  background: #fff;
  color: #777;
  cursor: pointer;
}

.dashboard-frame {
  display: grid;
  grid-template-columns: 228px minmax(950px, 1fr);
  min-height: 900px;
  background: #f4f5f9;
}

.user-tools button {
  border: 0;
  min-height: 26px;
  padding: 0 10px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  overflow: visible;
}

.dashboard-hero {
  min-height: 260px;
  padding: 44px 80px;
  background: var(--purple);
  color: #fff;
}

.dashboard-hero h1 {
  margin: 0 0 12px;
  font-size: 28px;
  font-weight: 700;
}

.dashboard-hero p {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
}

.dashboard-widgets {
  display: grid;
  grid-template-columns: minmax(280px, 1fr) minmax(280px, 1fr) minmax(
      280px,
      1fr
    );
  gap: 30px;
  margin-top: -100px;
  padding: 0 80px 60px;
}

.dashboard-card {
  min-height: 220px;
  padding: 20px;
  border: 1px solid #d8dce5;
  background: #fff;
  box-shadow: 0 8px 18px rgba(20, 28, 48, 0.04);
}

.dashboard-card h2 {
  margin: 0 0 14px;
  font-size: 15px;
}

.dashboard-empty-row,
.login-log-list li {
  min-height: 32px;
  padding: 8px 14px;
  background: #f2f2f5;
  color: #333946;
}

.dashboard-empty-row {
  text-align: center;
}

.login-log-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.login-log-list span {
  font-weight: 700;
}

.memo-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
}

.memo-head h2 {
  margin: 0;
}

.dashboard-memo textarea {
  display: block;
  width: 100%;
  min-height: 146px;
  resize: none;
  border: 1px solid #cfd5df;
  padding: 12px;
  color: #333946;
}

.dashboard-memo textarea::placeholder {
  color: #b6bac3;
}

.dashboard-empty {
  min-height: 640px;
  background: #f4f5f9;
}

.sidebar {
  background: #fff;
  border-right: 1px solid #d9dde5;
}

.brand {
  height: 78px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-bottom: 1px solid #edf0f4;
}

.brand strong {
  color: #03005c;
  font-size: 19px;
}

.brand span {
  color: #777;
  font-size: 12px;
}

.user-tools {
  display: flex;
  justify-content: center;
  gap: 24px;
  height: 42px;
  align-items: center;
  color: #777;
  font-size: 12px;
  border-bottom: 1px solid #edf0f4;
}

.nav-group-title {
  padding: 18px 20px 8px;
  color: #a0a5ad;
  font-size: 12px;
}

.nav-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 42px;
  padding: 0 20px;
  border: 0;
  border-bottom: 1px solid #edf0f4;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.nav-item.is-open {
  color: var(--purple);
  font-weight: 700;
  border-left: 5px solid var(--purple);
  padding-left: 15px;
}

.nav-item.is-current {
  color: var(--purple);
  font-weight: 700;
  border-left: 5px solid var(--purple);
  padding-left: 15px;
}

.sub-nav {
  display: none;
  padding: 4px 0 10px 32px;
  color: #5b6472;
  line-height: 2;
}

.sub-nav button {
  display: block;
  width: 100%;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  line-height: 2;
  text-align: left;
  cursor: pointer;
}

.sub-nav.is-open {
  display: block;
}

.accordion-chevron {
  color: #9aa1ad;
}

.sub-nav .is-current {
  color: var(--purple);
}

.admin-content {
  padding: 20px 28px 48px;
}

.blank-content {
  min-height: 900px;
}

.admin-title {
  margin: 0 0 18px;
  font-size: 24px;
}

.info-box {
  margin-bottom: 10px;
  padding: 9px 16px;
  border: 1px solid var(--line);
  background: #fff;
  line-height: 1.75;
}

.black-button,
.primary-button,
.white-button,
.warning-button,
.danger-button {
  height: 30px;
  padding: 0 16px;
  border-radius: 3px;
  cursor: pointer;
  overflow: visible;
}

.black-button {
  color: #fff;
  border: 1px solid #000;
  background: #000;
  font-weight: 700;
}

.guide-action-button {
  margin-bottom: 16px;
}

.primary-button {
  color: #fff;
  border: 1px solid var(--purple);
  background: var(--purple);
  font-weight: 700;
}

.white-button {
  color: #555;
  border: 1px solid #cfd5df;
  background: #fff;
}

.warning-button {
  color: #fff;
  border: 1px solid #f59e0b;
  background: #f59e0b;
  font-weight: 700;
}

.danger-button {
  color: #fff;
  border: 1px solid #ef4444;
  background: #ef4444;
  font-weight: 700;
}

.search-table,
.form-table {
  width: 100%;
  margin-top: 30px;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.search-table th,
.form-table th {
  width: 180px;
  padding: 13px 12px;
  background: var(--head);
  text-align: left;
  border-bottom: 1px solid var(--line);
}

.search-table td,
.form-table td {
  padding: 10px;
  border-bottom: 1px solid var(--line);
}

.form-table input,
.form-table select,
.search-table input,
.search-table select {
  height: 30px;
  border: 1px solid #cfd5df;
  padding: 0 10px;
  background: #fff;
}

.date-input {
  width: 200px;
}

.keyword-input {
  width: 300px;
}

.select-input {
  width: 200px;
}

.project-table .select-input,
.project-table select {
  height: 36px;
  box-sizing: border-box;
  border: 1px solid #cfd5df;
  padding: 0 10px;
  background: #fff;
}

.sort-input {
  width: 100px;
}

.required {
  color: #ef4444;
}

.check-row {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-right: 12px;
  line-height: 1.2;
  white-space: nowrap;
}

.check-row input[type="radio"],
.check-row input[type="checkbox"] {
  flex: 0 0 auto;
  width: 13px;
  height: 13px;
  margin: 0;
}

.search-action {
  display: flex;
  justify-content: end;
  margin: 12px 0 28px;
}

.list-tools {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
}

.list-summary {
  justify-self: end;
  font-weight: 700;
}

.filter-pop {
  position: relative;
}

.filter-button {
  position: relative;
  min-width: 326px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid #cfd5df;
  background: #fff;
  text-align: left;
}

.filter-panel {
  position: absolute;
  right: 0;
  top: 33px;
  z-index: 3;
  width: 326px;
  padding: 14px 16px;
  border: 1px solid #cfd5df;
  background: #fff;
  box-shadow: 0 8px 20px rgba(17, 24, 39, 0.08);
}

.filter-panel h4 {
  margin: 0 0 8px;
}

.room-filter-panel {
  width: 390px;
}

.list-sort-panel {
  width: 420px;
}

.room-filter-panel fieldset,
.list-sort-panel fieldset {
  margin: 0;
  padding: 0 0 12px;
  border: 0;
}

.room-filter-panel fieldset + fieldset,
.list-sort-panel fieldset + fieldset {
  padding-top: 10px;
  border-top: 1px solid #e7eaf0;
}

.room-filter-panel legend,
.list-sort-panel legend {
  width: 100%;
  margin-bottom: 9px;
  padding: 0;
  font-weight: 700;
  color: #151922;
}

.room-filter-panel .check-row,
.list-sort-panel .check-row {
  margin-bottom: 3px;
}

.list-sort-panel label {
  display: inline-flex;
  align-items: center;
  margin: 0 12px 5px 0;
}

.filter-actions {
  display: flex;
  justify-content: end;
  gap: 6px;
  margin-top: 12px;
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.data-table th {
  height: 32px;
  background: #f0f0f0;
  border-bottom: 1px solid var(--line);
}

.data-table td {
  height: 32px;
  padding: 6px 10px;
  text-align: center;
  border-bottom: 1px solid var(--line);
}

.data-table a {
  color: var(--blue);
  text-decoration: none;
}

.pager {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-top: 16px;
  color: #79808c;
}

.pager button {
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.pager .current {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  border-radius: 5px;
  background: var(--purple);
  color: #fff;
}

.section-title {
  margin: 30px 0 8px;
  font-size: 16px;
}

.project-content {
  padding: 20px 28px 70px;
}

.project-guide {
  margin-bottom: 10px;
  padding: 9px 16px;
  border: 1px solid #cfd5df;
  background: #fff;
  line-height: 1.7;
}

.project-guide-edit {
  margin-bottom: 10px;
  padding: 8px 16px 14px;
  border: 1px solid #cfd5df;
  background: #fff;
}

.project-guide-edit-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.project-guide-edit-row input {
  height: 30px;
  width: 100%;
  border: 1px solid #cfd5df;
  padding: 0 10px;
}

.project-guide-actions {
  display: flex;
  gap: 6px;
  margin: 10px 0 18px;
}

.project-guide-bullet {
  color: #374151;
  font-size: 11px;
}

.project-guide-inline-button {
  border: 0;
  background: transparent;
  color: #4b5563;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.project-guide-add {
  margin-left: 28px;
}

.project-subtitle {
  margin: 28px 0 8px;
  font-size: 16px;
}

.project-tabs {
  display: flex;
  align-items: end;
  border-bottom: 1px solid var(--purple);
}

.project-tabs button {
  height: 38px;
  min-width: 96px;
  border: 0;
  border-bottom: 0;
  padding: 0 18px;
  background: transparent;
  color: #111827;
  cursor: pointer;
}

.project-tabs button.is-active {
  border: 1px solid var(--purple);
  border-bottom-color: #fff;
  color: var(--purple);
  background: #fff;
  font-weight: 700;
}

.project-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.project-table th,
.project-table td {
  border-bottom: 1px solid var(--line);
  padding: 11px 12px;
  vertical-align: middle;
}

.project-table th {
  width: 180px;
  background: var(--head);
  text-align: left;
}

.project-table .group-cell {
  width: 130px;
  text-align: left;
  font-weight: 700;
}

.project-table input[type="text"],
.project-table input[type="date"],
.project-table input[type="number"],
.project-table textarea {
  width: min(760px, 100%);
  border: 1px solid #cfd5df;
  padding: 8px 10px;
  background: #fff;
}

.project-table textarea {
  min-height: 160px;
  resize: vertical;
}

.project-table textarea.no-resize {
  resize: none;
}

.project-table .wide-input {
  width: 100%;
}

.project-help {
  margin-top: 8px;
  color: #0066ff;
  line-height: 1.55;
}

.project-file-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.project-button-row {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
}

.acl-content {
  padding-top: 20px;
}

.acl-search {
  margin-top: 30px;
}

.acl-search th,
.acl-search td {
  vertical-align: middle;
}

.acl-field-row {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
}

.acl-field-row .check-row {
  margin-right: 0;
}

.acl-field-row input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.acl-table th:nth-child(1),
.acl-table td:nth-child(1) {
  width: 80px;
}

.acl-table th:nth-child(2),
.acl-table td:nth-child(2) {
  width: 220px;
}

.acl-table th:nth-child(3),
.acl-table td:nth-child(3) {
  width: 180px;
}

.acl-table th:nth-child(5),
.acl-table td:nth-child(5) {
  width: 230px;
}

.activity-content {
  padding-top: 20px;
}

.activity-search {
  margin-top: 30px;
}

.activity-table th:nth-child(1),
.activity-table td:nth-child(1) {
  width: 90px;
}

.activity-table th:nth-child(2),
.activity-table td:nth-child(2),
.activity-table th:nth-child(3),
.activity-table td:nth-child(3) {
  width: 140px;
}

.activity-table th:nth-child(4),
.activity-table td:nth-child(4) {
  width: 330px;
}

.activity-table th:nth-child(5),
.activity-table td:nth-child(5),
.activity-table th:nth-child(6),
.activity-table td:nth-child(6),
.activity-table th:nth-child(7),
.activity-table td:nth-child(7) {
  width: 120px;
}

.activity-table th:nth-child(8),
.activity-table td:nth-child(8) {
  width: 160px;
}

.activity-table th:nth-child(9),
.activity-table td:nth-child(9) {
  width: 190px;
}

.activity-detail-table {
  table-layout: fixed;
}

.activity-detail-table th {
  width: 150px;
}
.activity-purpose-modal[hidden] { display: none; }
.activity-purpose-modal { position: fixed; inset: 0; z-index: 130; display: grid; place-items: center; padding: 20px; }
.activity-purpose-backdrop { position: absolute; inset: 0; background: rgba(18, 28, 45, .45); }
.activity-purpose-dialog { position: relative; z-index: 1; width: min(420px, 100%); padding: 22px; border: 1px solid #ccd5e0; border-radius: 8px; background: #fff; box-shadow: 0 16px 42px rgba(0, 0, 0, .2); }
.activity-purpose-dialog h2 { margin: 0; color: #24334d; font-size: 18px; }
.activity-purpose-dialog > p { margin: 8px 0 16px; color: #66758a; font-size: 13px; }
.activity-purpose-dialog label { display: block; color: #344054; font-size: 13px; font-weight: 700; }
.activity-purpose-dialog label b { color: #df5050; }
.activity-purpose-dialog textarea { display: block; width: 100%; min-height: 86px; margin-top: 7px; padding: 10px; border: 1px solid #cfd6df; border-radius: 4px; resize: vertical; font: inherit; }
.activity-purpose-dialog > div:last-child { display: flex; justify-content: flex-end; gap: 7px; margin-top: 16px; }

.payload-view {
  width: 100%;
  max-height: 310px;
  margin: 0;
  overflow: auto;
  border: 1px solid #e5e7eb;
  background: #fff;
  color: #0000cc;
  padding: 12px 14px;
  font-family: Consolas, "Courier New", monospace;
  font-size: 12px;
  line-height: 1.45;
  text-align: left;
  white-space: pre;
}

.login-history-content {
  padding-top: 20px;
}

.login-history-search {
  margin-top: 30px;
}

.login-filter-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.login-filter-line .date-input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.login-ip-input {
  width: min(720px, 100%);
}

.login-list-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 30px 0 10px;
}

.login-list-summary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.login-history-table {
  table-layout: fixed;
}

.login-history-table th,
.login-history-table td {
  white-space: normal;
  word-break: break-all;
  overflow-wrap: anywhere;
}

.login-history-table th:nth-child(1) {
  width: 60px;
}

.login-history-table th:nth-child(2) {
  width: 105px;
}

.login-history-table th:nth-child(3) {
  width: 85px;
}

.login-history-table th:nth-child(4) {
  width: 115px;
}

.login-history-table th:nth-child(5) {
  width: 75px;
}

.login-history-table th:nth-child(6) {
  width: 80px;
}

.login-history-table th:nth-child(7) {
  width: auto;
}

.login-history-table th:nth-child(8) {
  width: 150px;
}

.login-history-table th:nth-child(9) {
  width: 72px;
}

.login-history-table th:nth-child(10) {
  width: 92px;
}

.login-history-table th:nth-child(8),
.login-history-table td:nth-child(8),
.login-history-table th:nth-child(9),
.login-history-table td:nth-child(9),
.login-history-table th:nth-child(10),
.login-history-table td:nth-child(10) {
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}

.login-result-fail,
.login-result-count {
  display: block;
}

.notice-content {
  padding-top: 20px;
}

.notice-search {
  margin-top: 30px;
}

.notice-field-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.notice-field-line .date-input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.notice-list-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 30px 0 10px;
}

.notice-tool-left,
.notice-list-summary {
  display: flex;
  align-items: center;
  gap: 8px;
}

.notice-list-summary {
  justify-content: flex-end;
  flex-wrap: wrap;
}

.notice-table {
  table-layout: fixed;
}

.notice-table th,
.notice-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.notice-table th:nth-child(1) {
  width: 58px;
}

.notice-table th:nth-child(2) {
  width: 74px;
}

.notice-table th:nth-child(3) {
  width: 74px;
}

.notice-table th:nth-child(4) {
  width: auto;
}

.notice-table th:nth-child(5) {
  width: 80px;
}

.notice-table th:nth-child(6) {
  width: 112px;
}

.notice-table th:nth-child(7),
.notice-table th:nth-child(8) {
  width: 78px;
}

.notice-table th:nth-child(9),
.notice-table th:nth-child(10) {
  width: 140px;
}

.inquiry-table th,
.inquiry-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.inquiry-table th:nth-child(1) {
  width: 58px;
}

.inquiry-table th:nth-child(2) {
  width: 96px;
}

.inquiry-table th:nth-child(3) {
  min-width: 300px;
}

.inquiry-table th:nth-child(4),
.inquiry-table th:nth-child(5),
.inquiry-table th:nth-child(8) {
  width: 120px;
}

.inquiry-table th:nth-child(6) {
  width: 150px;
}

.inquiry-table th:nth-child(7),
.inquiry-table th:nth-child(9) {
  width: 140px;
}

.inquiry-table td:nth-child(6) {
  line-height: 1.5;
}

.writer-table {
  table-layout: fixed;
}

.writer-table th,
.writer-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.writer-table th:nth-child(1) {
  width: 6%;
}

.writer-table th:nth-child(2) {
  width: 10%;
}

.writer-table th:nth-child(3),
.writer-table th:nth-child(4) {
  width: 10%;
}

.writer-table th:nth-child(5) {
  width: 18%;
}

.writer-table th:nth-child(6) {
  width: 12%;
}

.writer-table th:nth-child(7) {
  width: 8%;
}

.writer-table th:nth-child(8) {
  width: 13%;
}

.writer-table th:nth-child(9) {
  width: 23%;
}

.empty-cell {
  height: 38px;
  text-align: center;
  color: #333;
}

.notice-form-table {
  margin-top: 8px;
}

.notice-form-table th {
  width: 170px;
}

.notice-form-table .wide-input {
  width: 100%;
}

.notice-form-table .medium-input {
  width: 260px;
}

.notice-form-table .time-input {
  width: 64px;
}

.notice-content-textarea {
  width: 100%;
  min-height: 470px;
  padding: 12px;
  border: 1px solid #cfd5df;
  resize: none;
  font: inherit;
}

.help-text {
  margin: 6px 0 0;
  color: #2680ff;
  line-height: 1.55;
}

.compact-button {
  min-width: 118px;
  height: 28px;
}

.notice-editor {
  border: 1px solid #bfc5cf;
  background: #fff;
}

.notice-editor-toolbar {
  display: flex;
  align-items: center;
  gap: 3px;
  min-height: 28px;
  padding: 3px 6px;
  border-bottom: 1px solid #cfd5df;
  background: #f6f6f6;
}

.notice-editor-toolbar button,
.notice-editor-toolbar select {
  height: 22px;
  min-width: 24px;
  border: 1px solid #bfc5cf;
  background: #fff;
  font-size: 12px;
}

.notice-editor-body {
  min-height: 470px;
  padding: 28px 44px;
  overflow: auto;
  line-height: 1.9;
  text-align: left;
}

.notice-editor-body h3 {
  margin: 0 0 26px;
  text-align: center;
  font-size: 18px;
}

.notice-editor-image {
  display: grid;
  place-items: center;
  width: min(700px, 78%);
  height: 250px;
  margin: 38px auto 0;
  border: 3px dashed #a6e56d;
  background: #ecffd8;
  color: #2fac61;
  text-align: center;
}

.notice-editor-image strong {
  display: block;
  font-size: 64px;
  line-height: 1;
}

.notice-editor-image span {
  color: #5a7f42;
  font-size: 20px;
  font-weight: 700;
}

.notice-editor-tabs {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  padding: 3px 8px;
  border-top: 1px solid #cfd5df;
  color: #6b7280;
  font-size: 11px;
}

.notice-file-list {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
  color: #6b7280;
}

.notice-file-list button {
  height: 22px;
  border: 0;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
}

.notice-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 24px;
}

.split-actions {
  justify-content: space-between;
}

.split-actions > div {
  display: flex;
  gap: 6px;
}

.subscriber-content {
  padding-top: 20px;
}

.subscriber-search {
  margin-top: 30px;
}

.subscriber-field-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.subscriber-field-line .date-input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.subscriber-list-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 30px 0 10px;
}

.subscriber-list-summary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.subscriber-table {
  table-layout: fixed;
}

.subscriber-table th,
.subscriber-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.subscriber-table th:nth-child(1) {
  width: 70px;
}

.subscriber-table th:nth-child(2) {
  width: 130px;
}

.subscriber-table th:nth-child(3) {
  width: 90px;
}

.subscriber-table th:nth-child(4) {
  width: auto;
}

.subscriber-table th:nth-child(5) {
  width: 100px;
}

.subscriber-table th:nth-child(6),
.subscriber-table th:nth-child(7) {
  width: 160px;
}

.inline-copy-button {
  display: inline-flex;
  align-items: center;
  height: 26px;
  margin-left: 8px;
  padding: 0 10px;
  font-size: 12px;
  font-weight: 400;
}

.link-button {
  border: 0;
  background: transparent;
  color: var(--blue);
  padding: 0;
  cursor: pointer;
  font: inherit;
}

.sitemap-auto-content {
  padding-top: 20px;
}

.sitemap-auto-search {
  margin-top: 30px;
}

.sitemap-auto-field-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.sitemap-auto-field-line .date-input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.sitemap-auto-list-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 30px 0 10px;
}

.sitemap-auto-list-summary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.sitemap-auto-table {
  table-layout: fixed;
}

.sitemap-auto-table th,
.sitemap-auto-table td {
  padding: 5px 4px;
  font-size: 12px;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.sitemap-auto-table th:nth-child(1) {
  width: 4%;
}

.sitemap-auto-table th:nth-child(2) {
  width: 7%;
}

.sitemap-auto-table th:nth-child(3) {
  width: 12%;
}

.sitemap-auto-table th:nth-child(4) {
  width: 9%;
}

.sitemap-auto-table th:nth-child(5) {
  width: 6%;
}

.sitemap-auto-table th:nth-child(6),
.sitemap-auto-table th:nth-child(7) {
  width: 8%;
}

.sitemap-auto-table th:nth-child(8),
.sitemap-auto-table th:nth-child(9) {
  width: 10%;
}

.sitemap-auto-table th:nth-child(10) {
  width: 11%;
}

.sitemap-auto-table th:nth-child(11),
.sitemap-auto-table th:nth-child(12) {
  width: 7%;
}

.sitemap-auto-table .orange-button {
  min-width: 54px;
  height: 26px;
  padding: 0 6px;
  font-size: 12px;
}

.orange-button {
  min-width: 64px;
  height: 28px;
  border: 1px solid #ff8a00;
  background: #ff8a00;
  color: #fff;
  font-weight: 700;
}

.sitemap-auto-form {
  margin-top: 8px;
}

.sitemap-auto-form th {
  width: 170px;
  vertical-align: middle;
}

.sitemap-auto-form .wide-input,
.sitemap-auto-form .wide-select {
  width: min(680px, 100%);
}

.sitemap-auto-form .medium-wide {
  width: min(680px, 100%);
}

.sitemap-name-input {
  width: min(680px, calc(100% - 80px));
}

.date-column-input {
  width: 190px;
  margin-right: 8px;
}

.mode-label {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  margin-bottom: 6px;
  padding: 0 8px;
  border-radius: 3px;
  background: var(--purple);
  color: #fff;
  font-weight: 700;
}

.inner-config-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.inner-config-table th {
  width: auto;
  height: 34px;
  padding: 8px;
  background: #e8e8e8;
  text-align: center;
}

.inner-config-table td {
  height: 40px;
  padding: 8px;
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.inner-config-table input,
.inner-config-table select {
  width: 100%;
}

.sitemap-auto-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 24px;
}

.page-meta-name-row {
  display: grid;
  grid-template-columns: minmax(360px, 1fr) auto auto;
  gap: 4px;
  align-items: center;
  margin-bottom: 8px;
}

.page-meta-name-row:last-child {
  margin-bottom: 0;
}

.page-meta-name-row .wide-input {
  min-width: 0;
}

.newsletter-history-content {
  padding-top: 20px;
}

.newsletter-history-search,
.newsletter-recipient-search {
  margin-top: 30px;
}

.newsletter-history-field-line {
  display: flex;
  align-items: center;
  gap: 8px;
}

.newsletter-history-field-line .date-input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.newsletter-history-list-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 30px 0 10px;
}

.newsletter-history-list-summary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.newsletter-history-table,
.newsletter-recipient-table {
  table-layout: fixed;
}

.newsletter-history-table th,
.newsletter-history-table td,
.newsletter-recipient-table th,
.newsletter-recipient-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.newsletter-history-table th:nth-child(1) {
  width: 58px;
}

.newsletter-history-table th:nth-child(2) {
  width: auto;
}

.newsletter-history-table th:nth-child(3) {
  width: 150px;
}

.newsletter-history-table th:nth-child(4) {
  width: 100px;
}

.newsletter-history-table th:nth-child(5),
.newsletter-history-table th:nth-child(6),
.newsletter-history-table th:nth-child(7),
.newsletter-history-table th:nth-child(8),
.newsletter-history-table th:nth-child(9) {
  width: 86px;
}

.newsletter-send-detail-table {
  table-layout: fixed;
  margin-top: 8px;
}

.newsletter-send-detail-table th {
  width: 150px;
}

.newsletter-result-summary {
  position: relative;
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 10px;
  margin-bottom: 10px;
  overflow: visible;
}

.newsletter-metric {
  min-height: 74px;
  padding: 12px 14px;
  border: 1px solid #d8dce5;
  background: #fff;
}

.newsletter-metric span {
  display: block;
  color: #6f7785;
  margin-bottom: 8px;
}

.newsletter-metric strong {
  display: block;
  font-size: 22px;
}

.newsletter-recipient-table th:nth-child(1) {
  width: 80px;
}

.newsletter-recipient-table th:nth-child(2) {
  width: 90px;
}

.newsletter-recipient-table th:nth-child(3) {
  width: auto;
}

.newsletter-recipient-table th:nth-child(4) {
  width: 90px;
}

.newsletter-recipient-table th:nth-child(5) {
  width: 190px;
}

.newsletter-recipient-table th:nth-child(6),
.newsletter-recipient-table th:nth-child(7) {
  width: 160px;
}

.common-code-content {
  padding-top: 20px;
}

.common-code-search {
  margin-top: 30px;
}

.common-code-group-select {
  width: 300px;
}

.common-code-row-marker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  overflow: visible;
}

.common-code-table th:nth-child(1),
.common-code-table td:nth-child(1) {
  width: 80px;
}

.common-code-table th:nth-child(2),
.common-code-table td:nth-child(2) {
  width: 180px;
}

.common-code-table th:nth-child(3),
.common-code-table td:nth-child(3) {
  width: 180px;
}

.common-code-table th:nth-child(4),
.common-code-table td:nth-child(4) {
  width: 280px;
}

.common-code-table th:nth-child(5),
.common-code-table td:nth-child(5) {
  width: 120px;
}

.common-code-table th:nth-child(6),
.common-code-table td:nth-child(6) {
  width: 150px;
}

.common-code-table th:nth-child(7),
.common-code-table td:nth-child(7),
.common-code-table th:nth-child(8),
.common-code-table td:nth-child(8) {
  width: 210px;
}

.auth-content {
  padding-top: 20px;
}

.auth-search th,
.auth-search td {
  vertical-align: middle;
}

.auth-table th:nth-child(1),
.auth-table td:nth-child(1) {
  width: 80px;
}

.auth-table th:nth-child(2),
.auth-table td:nth-child(2) {
  width: 220px;
}

.auth-table th:nth-child(4),
.auth-table td:nth-child(4),
.auth-table th:nth-child(5),
.auth-table td:nth-child(5) {
  width: 170px;
}

.auth-table th:nth-child(6),
.auth-table td:nth-child(6) {
  width: 230px;
}

.auth-editor-grid {
  display: grid;
  grid-template-columns: minmax(520px, 1fr) minmax(520px, 1fr);
  gap: 32px;
  margin-top: 28px;
}

.auth-menu-panel,
.auth-form-panel {
  min-width: 0;
}

.auth-panel-head {
  height: 44px;
  padding: 0 14px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line);
  background: #e7e7e7;
  font-weight: 700;
  line-height: 44px;
}

.auth-menu-list {
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.auth-menu-row,
.auth-menu-child {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-bottom: 1px solid var(--line);
}

.auth-menu-row {
  color: #111827;
  font-weight: 700;
}

.auth-menu-row.is-open {
  color: var(--purple);
}

.auth-menu-row > span:first-child,
.auth-menu-child > span {
  min-width: 0;
}

.auth-menu-row > span:last-child {
  display: grid;
  place-items: center;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  line-height: 1;
}

.auth-menu-child {
  padding-left: 34px;
  color: #666f7d;
  background: #fafafa;
}

.auth-menu-child input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
}

.auth-form-table {
  margin-top: 0;
}

.auth-form-table .wide-input {
  width: 100%;
}

.auth-dashboard-empty {
  min-height: 76px;
  display: flex;
  align-items: center;
  color: #8b929f;
}

.auth-description {
  min-height: 200px;
}

.menu-manage-content {
  padding-top: 20px;
}

.menu-manager-grid {
  display: grid;
  grid-template-columns: minmax(520px, 0.95fr) minmax(520px, 1fr);
  gap: 28px;
  margin-top: 28px;
}

.menu-manager-grid.is-list-only {
  grid-template-columns: minmax(720px, 1fr);
}

.menu-tree-panel,
.menu-form-panel {
  min-width: 0;
}

.menu-panel-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 44px;
  padding: 0 14px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line);
  background: #e7e7e7;
}

.menu-panel-head button {
  border: 0;
  background: transparent;
  color: #5b6472;
  cursor: pointer;
}

.menu-head-actions,
.menu-collapse-actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.menu-head-actions {
  gap: 14px;
}

.mini-icon-button {
  width: 22px;
  height: 22px;
  margin-left: 8px;
  border-radius: 3px;
  background: #555 !important;
  color: #fff !important;
}

.menu-tree {
  border-bottom: 1px solid var(--line);
  background: #f8f8f9;
}

.menu-order-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 16px 0 0;
}

.menu-tree-group,
.menu-tree-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 34px;
  padding: 0 14px;
  border-bottom: 1px solid var(--line);
}

.menu-tree-group {
  background: #fff;
  color: var(--purple);
  font-weight: 700;
}

.menu-tree-group.is-selected {
  background: #fbfbff;
}

.menu-tree-child {
  padding-left: 34px;
  color: #555d6b;
}

.menu-tree-child.is-current {
  color: var(--purple);
  font-weight: 700;
}

.menu-tree-name {
  min-width: 0;
}

.menu-tree-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  width: 132px;
  flex: 0 0 132px;
}

.menu-tree-move-actions {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.menu-tree-child .menu-tree-actions {
  width: 96px;
  flex-basis: 96px;
}

.tree-action-button {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid #d8dce5;
  border-radius: 3px;
  background: #fff;
  color: #6f7785;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
}

.tree-action-button.is-primary {
  width: auto;
  min-width: 34px;
  padding: 0 6px;
  color: var(--purple);
  border-color: rgba(90, 50, 255, 0.35);
}

.menu-form-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.menu-form-table th,
.menu-form-table td {
  border-bottom: 1px solid var(--line);
  padding: 12px;
  vertical-align: middle;
}

.menu-form-table th {
  width: 180px;
  background: #e7e7e7;
  text-align: left;
}

.menu-form-table input,
.menu-form-table textarea {
  width: 100%;
  border: 1px solid #cfd5df;
  padding: 8px 10px;
  background: #fff;
}

.menu-form-table textarea {
  min-height: 180px;
  resize: none;
}

.url-prefix {
  display: inline-block;
  margin-right: 8px;
}

.menu-form-table .url-prefix + input {
  width: min(420px, calc(100% - 112px));
}

.byte-count {
  margin-top: 6px;
  color: #8b929f;
  font-size: 12px;
  text-align: right;
}

.menu-form-actions {
  display: flex;
  justify-content: space-between;
  margin-top: 14px;
}

.menu-form-actions.is-right-only {
  justify-content: flex-end;
}

.menu-form-actions > div {
  display: flex;
  gap: 6px;
}

.faq-manager-grid {
  display: grid;
  grid-template-columns: minmax(560px, 0.96fr) minmax(520px, 1fr);
  gap: 28px;
  align-items: start;
  margin-top: 28px;
}

.faq-manager-grid.is-list-only {
  grid-template-columns: minmax(720px, 1fr);
}

.faq-tree {
  border-bottom: 1px solid var(--line);
  background: #f8f8f9;
}

.faq-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 38px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.faq-row.is-child {
  background: #f8f8f9;
}

.faq-row.is-current,
.faq-row.is-current .faq-title-button {
  color: var(--purple);
  font-weight: 700;
}

.faq-row > * {
  min-width: 0;
}

.faq-title-button {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  background: transparent;
  padding: 0 12px;
  text-align: left;
  color: #111827;
  font: inherit;
  cursor: pointer;
}

.faq-row.is-child .faq-title-button {
  padding-left: 36px;
}

.faq-count {
  color: #0046ad;
}

.faq-actions {
  width: 128px;
  flex-basis: 128px;
  padding-right: 8px;
}

.faq-row.is-child .faq-actions {
  width: 88px;
  flex-basis: 88px;
}

.faq-form-panel {
  min-width: 0;
}

.faq-form-panel .menu-form-table textarea {
  min-height: 420px;
}

.banner-content {
  padding-top: 20px;
}

.banner-manager-grid {
  display: grid;
  grid-template-columns: minmax(520px, 1fr) minmax(520px, 1fr);
  gap: 32px;
  margin-top: 28px;
}

.banner-manager-grid.is-list-only {
  grid-template-columns: minmax(720px, 1fr);
}

.banner-list-panel,
.banner-form-panel {
  min-width: 0;
}

.banner-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 46px;
  padding: 0 14px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line);
  background: #e7e7e7;
}

.banner-list {
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.banner-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 36px;
  padding: 0 14px;
  border-bottom: 1px solid var(--line);
}

.banner-row.is-current {
  background: #fbfbff;
}

.banner-name {
  font-weight: 700;
}

.banner-list-panel .banner-name {
  font-weight: 400;
}

.banner-name::before {
  content: "...";
  margin-right: 10px;
}

.banner-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  min-width: 96px;
}

.banner-form-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.banner-form-table th,
.banner-form-table td {
  border-bottom: 1px solid var(--line);
  padding: 11px 12px;
  vertical-align: middle;
}

.banner-form-table th {
  width: 180px;
  background: #e7e7e7;
  text-align: left;
}

.banner-form-table input[type="text"] {
  display: block;
  width: 100%;
  height: 30px;
  margin-bottom: 10px;
  border: 1px solid #cfd5df;
  padding: 0 10px;
  background: #fff;
}

.banner-form-table input[type="text"]:last-child {
  margin-bottom: 0;
}

.form-help {
  margin: 6px 0 0;
  color: #0066ff;
  line-height: 1.55;
}

.file-row {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 30px;
}

.file-row button {
  border: 0;
  background: transparent;
  color: #6f7785;
  cursor: pointer;
}

.banner-form-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
}

.banner-form-actions > div {
  display: flex;
  gap: 6px;
}

.popup-manager-grid {
  display: grid;
  grid-template-columns: minmax(520px, 1fr) minmax(520px, 1fr);
  gap: 32px;
  margin-top: 28px;
}

.popup-manager-grid.is-list-only {
  grid-template-columns: minmax(720px, 1fr);
}

.popup-list-panel,
.popup-form-panel {
  min-width: 0;
}

.popup-list-panel .banner-name {
  color: #111827;
  font-weight: 400;
  text-decoration: none;
}

.popup-row-actions {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  width: 52px;
  flex: 0 0 52px;
}

.category-row-actions {
  width: 190px;
  flex-basis: 190px;
}

.category-row-actions .tree-action-button:last-child {
  width: auto;
  min-width: 64px;
  padding: 0 6px;
}

.category-count-text {
  margin-left: 6px;
  color: #6b7280;
  font-size: 12px;
  font-weight: 500;
}

.category-list-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 0 0;
}

.series-content-box {
  display: grid;
  gap: 16px;
}

.series-search-line {
  display: grid;
  grid-template-columns: 130px 130px minmax(180px, 1fr) auto;
  gap: 6px;
  align-items: center;
}

.series-search-line select,
.series-search-line input {
  width: 100%;
  height: 36px;
  box-sizing: border-box;
  border: 1px solid #cfd5df;
  padding: 0 10px;
  background: #fff;
}

.series-search-panel,
.series-selected-panel {
  border: 1px solid var(--line);
  background: #fff;
  padding: 12px;
}

.series-selected-panel {
  border-top-color: var(--line-dark);
}

.series-mini-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  font-size: 13px;
}

.series-mini-table th,
.series-mini-table td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  vertical-align: middle;
}

.series-mini-table th {
  background: #f7f7f9;
  color: var(--text-main);
  font-weight: 700;
}

.series-mini-actions {
  display: inline-flex;
  gap: 4px;
  white-space: nowrap;
}

.series-mini-actions .tree-action-button:last-child {
  width: auto;
  min-width: 34px;
  padding: 0 6px;
}

.series-selected-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
  font-weight: 700;
}

.series-result-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 10px;
  color: #6b7280;
  font-size: 12px;
}

.series-pager {
  margin-top: 0;
}

.content-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  border: 1px solid #d8dce5;
  background: #fff;
}

.content-status.is-draft {
  color: #6b7280;
  background: #f8fafc;
}

.content-status.is-review {
  color: #5a32ff;
  background: #f4f1ff;
  border-color: rgba(90, 50, 255, 0.25);
}

.content-status.is-revision {
  color: #b45309;
  background: #fffbeb;
  border-color: #fcd34d;
}

.content-status.is-complete {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}

.content-status.is-published {
  color: #0f766e;
  background: #f0fdfa;
  border-color: #99f6e4;
}

.content-status.is-scheduled {
  color: #1d4ed8;
  background: #eff6ff;
  border-color: #bfdbfe;
}

.newsletter-manage-content {
  padding-top: 20px;
}

.newsletter-manage-search {
  margin-top: 30px;
}

.newsletter-manage-field-line {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.newsletter-manage-field-line .date-input:disabled {
  background: #f3f4f6;
  color: #a0a5ad;
  cursor: not-allowed;
}

.newsletter-manage-list-tools {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin: 30px 0 10px;
}

.newsletter-manage-list-summary {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 18px;
  flex-wrap: wrap;
}

.newsletter-manage-table {
  table-layout: fixed;
}

.newsletter-manage-table th,
.newsletter-manage-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.newsletter-manage-table th:nth-child(1) {
  width: 64px;
}

.newsletter-manage-table th:nth-child(2) {
  width: 92px;
}

.newsletter-manage-table th:nth-child(3) {
  width: 210px;
}

.newsletter-manage-table th:nth-child(4) {
  width: auto;
}

.newsletter-manage-table th:nth-child(5) {
  width: 86px;
}

.newsletter-manage-table th:nth-child(6),
.newsletter-manage-table th:nth-child(7),
.newsletter-manage-table th:nth-child(8) {
  width: 150px;
}

.newsletter-form-table {
  margin-top: 8px;
}

.newsletter-form-table th {
  width: 180px;
}

.newsletter-form-table .wide-input {
  width: 100%;
}

.time-input {
  height: 30px;
  padding: 0 8px;
  border: 1px solid #cfd5df;
}

.newsletter-template-section,
.newsletter-send-section {
  margin-top: 24px;
}

.newsletter-template-section {
  border: 1px solid var(--line-dark);
  background: #fff;
}

.newsletter-template-section.is-locked {
  background: #fbfbfc;
}

.newsletter-template-layout {
  display: grid;
  gap: 14px;
  padding: 16px;
}

.newsletter-section-panel {
  border: 1px solid var(--line);
  background: #fff;
}

.newsletter-section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: #f7f7f9;
}

.newsletter-section-head span {
  color: #6b7280;
  font-size: 12px;
}

.newsletter-content-card {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 14px;
  padding: 14px;
}

.newsletter-thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 104px;
  border: 1px dashed #cfd5df;
  background: #f8fafc;
  color: #6b7280;
  font-weight: 700;
}

.newsletter-card-meta {
  display: block;
  margin-bottom: 6px;
  color: #6b7280;
  font-size: 12px;
}

.newsletter-content-card strong,
.newsletter-content-row strong {
  display: block;
  min-width: 0;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.newsletter-content-card p {
  margin: 8px 0 12px;
  color: #4b5563;
  line-height: 1.6;
}

.newsletter-card-actions {
  display: flex;
  gap: 6px;
}

.newsletter-card-actions .tree-action-button {
  width: auto;
  min-width: 44px;
  padding: 0 8px;
}

.newsletter-content-list {
  display: grid;
}

.newsletter-content-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 96px 150px;
  gap: 8px;
  align-items: center;
  padding: 10px 14px;
  border-top: 1px solid var(--line);
}

.newsletter-content-row:first-child {
  border-top: 0;
}

.newsletter-content-row > span {
  color: #6b7280;
  font-weight: 700;
}

.newsletter-content-row em {
  color: #6b7280;
  font-size: 12px;
  font-style: normal;
}

.newsletter-row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 4px;
  width: 150px;
  white-space: nowrap;
}

.newsletter-row-actions .tree-action-button {
  flex: 0 0 auto;
}

.newsletter-row-actions .tree-action-button:last-child {
  width: auto;
  min-width: 44px;
  padding: 0 8px;
}

.newsletter-content-row.is-empty {
  color: #9ca3af;
  background: #fafafa;
}

.newsletter-test-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 16px;
  align-items: start;
}

.newsletter-test-form {
  min-width: 0;
}

.newsletter-recipient-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
}

.newsletter-recipient-tags span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 26px;
  padding: 0 8px;
  border: 1px solid var(--line);
  background: #f8fafc;
  font-size: 12px;
}

.newsletter-recipient-tags button {
  border: 0;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
}

.newsletter-test-history {
  border: 1px solid var(--line);
  background: #fff;
}

.newsletter-test-history-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--line);
  background: #f7f7f9;
}

.newsletter-test-history-head span {
  color: #6b7280;
  font-size: 12px;
}

.newsletter-test-history-list {
  max-height: 245px;
  overflow-y: auto;
}

.newsletter-test-history-list > div {
  padding: 12px 14px;
  border-top: 1px solid var(--line);
}

.newsletter-test-history-list > div:first-child {
  border-top: 0;
}

.newsletter-test-history-list strong {
  display: inline-flex;
  min-width: 42px;
  margin-right: 8px;
}

.newsletter-test-history-list span {
  color: #6b7280;
  font-size: 12px;
}

.newsletter-test-history-list p {
  margin: 6px 0 0;
  color: #4b5563;
  font-size: 12px;
  line-height: 1.5;
}

.newsletter-test-table {
  margin-top: 0;
}

.newsletter-test-table th {
  width: 160px;
}

.newsletter-output-preview {
  padding: 18px;
  background: #f3f4f6;
}

.newsletter-output-shell {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px 40px;
  border: 1px solid var(--line);
  background: #fff;
}

.newsletter-output-logo {
  margin-bottom: 18px;
  color: var(--purple);
  font-weight: 800;
  text-transform: uppercase;
}

.newsletter-output-shell h2 {
  margin: 0 0 12px;
  font-size: 26px;
}

.newsletter-output-intro {
  margin: 0 0 20px;
  color: #4b5563;
  line-height: 1.7;
}

.newsletter-output-feature {
  padding: 18px;
  border: 1px solid var(--line);
  background: #f8fafc;
}

.newsletter-output-feature > div {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 130px;
  margin-bottom: 14px;
  border: 1px dashed #cfd5df;
  color: #6b7280;
  font-weight: 700;
}

.newsletter-output-feature strong {
  display: block;
  margin-bottom: 8px;
  font-size: 18px;
}

.newsletter-output-feature p {
  margin: 0;
  color: #4b5563;
  line-height: 1.6;
}

.newsletter-output-shell h3 {
  margin: 24px 0 10px;
  font-size: 16px;
}

.newsletter-output-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.newsletter-output-list li {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

.newsletter-output-list span {
  flex: 0 0 auto;
  color: #6b7280;
  font-size: 12px;
}

.newsletter-output-footer {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--line-dark);
  color: #6b7280;
  font-size: 12px;
  text-align: center;
}

.newsletter-popup-frame {
  margin-top: 24px;
  border: 1px solid var(--line-dark);
  background: #fff;
}

.newsletter-popup-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--line);
  background: #f7f7f9;
}

.newsletter-popup-head strong {
  font-size: 18px;
}

.newsletter-popup-search {
  margin: 16px;
  width: calc(100% - 32px);
}

.newsletter-popup-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 16px;
  padding: 0 16px 16px;
}

.newsletter-popup-tools,
.newsletter-selected-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  color: #6b7280;
  font-size: 12px;
}

.newsletter-popup-tools strong,
.newsletter-selected-head strong {
  color: var(--text);
  font-size: 14px;
}

.newsletter-popup-result-scroll {
  max-height: 340px;
  overflow-y: auto;
  border: 1px solid var(--line);
}

.newsletter-popup-table {
  margin: 0;
}

.newsletter-popup-table th:nth-child(1) {
  width: 56px;
}

.newsletter-popup-table th:nth-child(2) {
  width: 100px;
}

.newsletter-popup-table th:nth-child(4),
.newsletter-popup-table th:nth-child(5) {
  width: 130px;
}

.newsletter-selected-panel {
  border: 1px solid var(--line);
  padding: 14px;
  background: #fafafa;
}

.newsletter-selected-list {
  display: grid;
  gap: 8px;
  margin-bottom: 14px;
}

.newsletter-selected-list > div {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid var(--line);
  background: #fff;
}

.newsletter-selected-list span {
  color: #6b7280;
  font-size: 12px;
}

.newsletter-selected-list button {
  justify-self: end;
  border: 0;
  background: transparent;
  color: #6b7280;
  cursor: pointer;
}

.newsletter-selected-notice {
  margin-bottom: 12px;
  padding: 10px 12px;
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #92400e;
  font-size: 12px;
  line-height: 1.6;
}

.newsletter-selected-list > div.is-over-limit {
  border-color: #fde68a;
  background: #fffbeb;
}

.fee-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
  margin: 0 0 18px;
}

.fee-summary-grid > div {
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: #fff;
}

.fee-summary-grid span {
  display: block;
  margin-bottom: 6px;
  color: #6b7280;
  font-size: 12px;
}

.fee-summary-grid strong {
  font-size: 20px;
}

.fee-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 64px;
  height: 22px;
  padding: 0 8px;
  border: 1px solid #d8dce5;
  border-radius: 999px;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
}

.fee-status.is-required {
  color: #b45309;
  background: #fffbeb;
  border-color: #fcd34d;
}

.fee-status.is-saved {
  color: #047857;
  background: #ecfdf5;
  border-color: #a7f3d0;
}

.fee-status.is-hold {
  color: #6b7280;
  background: #f8fafc;
}

.fee-table th,
.fee-table td,
.fee-detail-table th,
.fee-detail-table td {
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.fee-detail-table {
  margin-top: 8px;
}

.fee-detail-table tfoot th {
  height: 34px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line);
  background: #f7f7f9;
}

.fee-detail-table input,
.fee-detail-table select {
  height: 30px;
  border: 1px solid #cfd5df;
  padding: 0 8px;
}

.fee-detail-table .small-input,
.fee-detail-table .small-select {
  width: 86px;
}

.fee-detail-table .money-input {
  width: 100px;
}

.fee-detail-table .memo-input {
  width: 100%;
}

.fee-record-table .small-input {
  width: 96px;
}

.fee-record-table .money-input {
  width: 140px;
}

.form-help-inline {
  margin-left: 8px;
  color: #06f;
  font-size: 12px;
}

.fee-detail-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
}

.fee-detail-actions > div {
  display: flex;
  gap: 6px;
}

.content-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 16px;
  align-items: start;
}

.content-authoring-section {
  margin-top: 24px;
  border: 1px solid var(--line-dark);
  background: #fff;
}

.content-section-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid var(--line);
  background: #f7f7f9;
}

.content-section-head h2 {
  margin: 0 0 4px;
  font-size: 18px;
}

.content-section-head p {
  margin: 0;
  color: #6b7280;
  font-size: 13px;
}

.content-section-head > div:last-child {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.content-section-actions {
  display: flex;
  justify-content: flex-end;
  margin: 12px 0 20px;
}

.content-authoring-tool {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) 320px;
  gap: 0;
  min-height: 560px;
}

.content-palette-panel,
.content-assist-panel {
  background: #fafafa;
  padding: 16px;
}

.content-palette-panel {
  border-right: 1px solid var(--line);
}

.content-palette-panel strong {
  display: block;
  margin-bottom: 12px;
}

.content-palette-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-bottom: 8px;
  padding: 10px 12px;
  border: 1px dashed #cfd5df;
  background: #fff;
  text-align: left;
  font-weight: 700;
  cursor: pointer;
}

.content-palette-item.is-selected {
  border-color: var(--purple);
  background: #f5f3ff;
  color: var(--purple);
}

.palette-thumb {
  flex: 0 0 42px;
  width: 42px;
  height: 30px;
  border: 1px solid #d8dce5;
  background: #f7f7f9;
  position: relative;
}

.palette-thumb::before,
.palette-thumb::after {
  content: "";
  position: absolute;
  left: 7px;
  right: 7px;
  height: 4px;
  background: #c4c9d4;
}

.palette-thumb::before {
  top: 7px;
}

.palette-thumb::after {
  top: 16px;
}

.palette-thumb.is-image::before {
  inset: 6px 7px auto;
  height: 12px;
  background: #dbeafe;
}

.palette-thumb.is-image::after {
  top: 22px;
}

.palette-thumb.is-qa::before {
  width: 8px;
  right: auto;
  border-radius: 50%;
}

.palette-thumb.is-quote::before {
  content: "“";
  top: 2px;
  height: auto;
  background: transparent;
  color: #9ca3af;
  font-size: 20px;
  font-weight: 700;
}

.palette-thumb.is-link::before {
  top: 12px;
  height: 6px;
  border-radius: 999px;
}

.palette-thumb.is-heading::before {
  top: 8px;
  height: 6px;
  background: #111827;
}

.palette-thumb.is-video::before {
  inset: 6px 8px auto;
  height: 18px;
  background: #fee2e2;
}

.palette-thumb.is-video::after {
  left: 18px;
  right: auto;
  top: 11px;
  width: 0;
  height: 0;
  border-left: 8px solid #ef4444;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  background: transparent;
}

.palette-thumb.is-card::before,
.palette-thumb.is-place::before,
.palette-thumb.is-tag::before {
  top: 6px;
  height: 18px;
  border-radius: 4px;
}

.palette-thumb.is-card::before {
  background: #fef3c7;
}

.palette-thumb.is-place::before {
  background: #d1fae5;
}

.palette-thumb.is-tag::before {
  background: #e0e7ff;
}

.palette-thumb.is-spacer::before {
  top: 14px;
  height: 2px;
}

.palette-thumb.is-spacer::after {
  display: none;
}

.palette-thumb.is-html::before {
  content: "<>";
  top: 5px;
  height: auto;
  background: transparent;
  color: #6b7280;
  font-size: 14px;
  font-weight: 800;
}

.palette-thumb.is-html::after {
  display: none;
}

.content-canvas-panel {
  padding: 18px;
  background: #f2f2f2;
}

.content-canvas-title {
  margin-bottom: 12px;
  font-weight: 700;
}

.content-assist-panel {
  border-left: 1px solid var(--line);
}

.content-panel-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 14px;
}

.content-panel-tabs button {
  flex: 1;
  min-width: 0;
  height: 32px;
  border: 1px solid #cfd5df;
  background: #fff;
  color: #555;
  font-weight: 700;
}

.content-panel-tabs button.is-active {
  color: #fff;
  border-color: var(--purple);
  background: var(--purple);
}

.content-assist-body {
  display: grid;
  gap: 10px;
}

.content-assist-body label {
  font-weight: 700;
  font-size: 13px;
}

.content-assist-body input,
.content-assist-body select,
.content-assist-body textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid #cfd5df;
  padding: 10px;
  background: #fff;
  font-family: inherit;
}

.content-assist-body input,
.content-assist-body select {
  height: 40px;
}

.content-assist-body textarea {
  resize: vertical;
}

.content-live-preview {
  border: 1px solid #d8dce5;
  background: #fff;
  padding: 12px;
}

.content-live-preview strong {
  display: block;
  margin-bottom: 8px;
}

.content-live-preview p {
  margin: 0;
  line-height: 1.7;
  color: #333;
}

.content-block-panel,
.content-review-panel,
.content-history-panel {
  border: 1px solid var(--line);
  background: #fff;
  padding: 14px;
}

.content-block-head,
.content-review-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
  font-weight: 700;
}

.content-block-list {
  display: grid;
  gap: 10px;
}

.content-block-item {
  border: 1px solid #d8dce5;
  background: #fafafa;
  padding: 12px;
}

.content-block-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  font-weight: 700;
}

.block-state {
  display: inline-flex;
  align-items: center;
  height: 20px;
  margin-left: 6px;
  padding: 0 7px;
  border-radius: 999px;
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
  vertical-align: middle;
}

.block-state.is-template {
  color: #6b7280;
  background: #f3f4f6;
}

.block-state.is-filled {
  color: #047857;
  background: #ecfdf5;
}

.content-block-title .tree-action-button {
  width: auto;
  min-width: 34px;
  padding: 0 6px;
}

.content-block-body {
  color: #333;
  line-height: 1.7;
  font-size: 13px;
}

.content-side-box {
  display: grid;
  gap: 12px;
}

.content-comment {
  border-top: 1px solid var(--line);
  padding-top: 10px;
  margin-top: 10px;
  font-size: 13px;
}

.content-comment:first-child {
  border-top: 0;
  padding-top: 0;
  margin-top: 0;
}

.content-comment strong {
  display: block;
  margin-bottom: 5px;
}

.content-comment-meta {
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 6px 10px;
  padding: 10px 12px;
  border: 1px solid #d8dce5;
  background: #fff;
  font-size: 13px;
}

.content-comment-meta strong {
  color: #333;
}

.content-comment-meta span,
.content-comment-date {
  color: #6b7280;
}

.content-comment-date {
  margin-bottom: 6px;
  font-size: 12px;
}

.writer-search-box {
  display: grid;
  gap: 10px;
}

.writer-search-line {
  display: flex;
  gap: 8px;
  align-items: center;
}

.writer-search-line .wide-input {
  flex: 1;
}

.selected-writer-list {
  display: grid;
  gap: 8px;
}

.selected-writer-item {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #d8dce5;
  background: #fff;
}

.selected-writer-item strong {
  display: block;
  margin-bottom: 3px;
}

.selected-writer-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  white-space: nowrap;
}

.writer-action-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  height: 28px;
  padding: 0 8px;
  border: 1px solid #d8dce5;
  border-radius: 3px;
  background: #fff;
  color: #6f7785;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
  box-sizing: border-box;
}

.writer-action-button.is-delete {
  min-width: 42px;
}

.rich-text-box {
  border: 1px solid #cfd5df;
  background: #fff;
}

.rich-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px;
  border-bottom: 1px solid #e5e7eb;
  background: #f7f7f9;
}

.rich-toolbar button {
  min-width: 30px;
  height: 28px;
  padding: 0 8px;
  border: 1px solid #cfd5df;
  background: #fff;
  cursor: pointer;
  font-weight: 800;
}

.rich-editor {
  min-height: 120px;
  padding: 10px;
  line-height: 1.7;
}

.rich-editor.is-small {
  min-height: 74px;
}

.block-preview-mode {
  padding: 16px;
  border: 2px solid var(--purple);
  background: #fff;
}

.block-preview-mode-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
  font-weight: 800;
  color: var(--purple);
}

.block-preview-surface {
  padding: 24px;
  border: 1px solid #e5e7eb;
  background: #fafafa;
}

.content-action-bar {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 18px;
}

.content-action-bar > div {
  display: flex;
  gap: 8px;
}

.block-storyboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  gap: 18px;
  margin-top: 18px;
}

.block-preview-panel,
.block-edit-panel,
.block-rule-panel {
  border: 1px solid var(--line);
  background: #fff;
}

.block-preview-panel,
.block-edit-panel {
  padding: 20px;
}

.block-preview-title,
.block-edit-title {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  margin-bottom: 14px;
  font-weight: 800;
}

.block-public-sample {
  max-width: 720px;
  margin: 0 auto;
  padding: 28px 22px;
  border: 1px solid #eceff3;
  background: #fafafa;
}

.block-public-sample h2 {
  margin: 0 0 16px;
  font-size: 26px;
  text-align: center;
}

.block-public-sample h3 {
  margin: 0 0 14px;
  font-size: 22px;
}

.block-public-sample p {
  margin: 0 0 12px;
  line-height: 1.8;
}

.sample-image-box,
.sample-video-box {
  display: grid;
  place-items: center;
  min-height: 260px;
  background: #eef2f7;
  color: #6b7280;
  font-weight: 800;
}

.sample-video-box {
  background: #111827;
  color: #fff;
}

.sample-caption {
  margin-top: 10px;
  color: #6b7280;
  font-size: 13px;
  text-align: center;
}

.sample-quote {
  padding: 22px 24px;
  border-left: 5px solid #111827;
  background: #fff;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.7;
}

.sample-interview {
  display: grid;
  gap: 16px;
}

.sample-interview dt {
  font-weight: 800;
}

.sample-interview dd {
  margin: 0;
  line-height: 1.8;
}

.sample-button-list,
.sample-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sample-button-list a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 16px;
  border: 1px solid #111827;
  color: #111827;
  font-weight: 800;
  text-decoration: none;
}

.sample-message-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.sample-message-card {
  padding: 18px;
  border: 1px solid #e5e7eb;
  background: #fff;
  text-align: center;
}

.sample-avatar {
  width: 64px;
  height: 64px;
  margin: 0 auto 10px;
  border-radius: 50%;
  background: #dbeafe;
}

.sample-place-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: center;
  padding: 20px;
  border: 1px solid #e5e7eb;
  background: #fff;
}

.sample-tag-list span {
  padding: 7px 10px;
  border-radius: 999px;
  background: #eef2ff;
  color: #3730a3;
  font-weight: 800;
}

.sample-spacer {
  height: 56px;
  border-top: 1px solid #d1d5db;
  border-bottom: 1px dashed #d1d5db;
}

.block-rule-panel {
  grid-column: 1 / -1;
  padding: 16px 20px;
}

.block-rule-panel ul {
  margin: 8px 0 0 18px;
  padding: 0;
  line-height: 1.8;
}

.block-authoring-page {
  margin-top: 18px;
}

.block-page-rule {
  margin-top: 16px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  background: #fff;
}

.block-page-rule ul {
  margin: 8px 0 0 18px;
  padding: 0;
  line-height: 1.8;
}

.html-adjust-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 18px;
  margin-top: 18px;
}

.html-adjust-panel {
  border: 1px solid var(--line);
  background: #fff;
}

.html-adjust-panel-head {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  background: #f7f7f9;
  font-weight: 800;
}

.html-code-area {
  width: 100%;
  min-height: 560px;
  box-sizing: border-box;
  border: 0;
  padding: 18px;
  background: #111827;
  color: #d1fae5;
  font-family: Consolas, "Courier New", monospace;
  font-size: 13px;
  line-height: 1.7;
  resize: vertical;
}

.html-preview-frame {
  min-height: 560px;
  padding: 24px;
  background: #fff;
}

.content-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  min-height: 620px;
}

.content-public-preview {
  background: #f2f2f2;
  padding: 28px;
}

.content-public-article {
  max-width: 760px;
  margin: 0 auto;
  padding: 42px 48px;
  background: #fff;
  border: 1px solid var(--line);
}

.content-public-meta {
  color: #6b7280;
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 12px;
}

.content-public-article h2 {
  margin: 0 0 28px;
  font-size: 30px;
  line-height: 1.35;
}

.public-block {
  position: relative;
  margin-top: 28px;
  padding: 18px;
  border: 2px solid transparent;
}

.public-block.is-selected {
  border-color: var(--purple);
  background: #fbfbff;
}

.public-block .lead {
  font-size: 19px;
  line-height: 1.8;
  font-weight: 700;
}

.public-comment-button {
  position: absolute;
  top: -12px;
  right: 12px;
  height: 24px;
  padding: 0 8px;
  border: 1px solid rgba(90, 50, 255, 0.35);
  background: #fff;
  color: var(--purple);
  font-size: 12px;
  font-weight: 700;
}

.public-image-placeholder {
  height: 220px;
  display: grid;
  place-items: center;
  background: #e5e7eb;
  color: #6b7280;
  font-weight: 700;
}

.public-block .caption {
  margin-top: 8px;
  color: #6b7280;
  font-size: 13px;
}

.content-review-sidebar {
  border-left: 1px solid var(--line);
  background: #fafafa;
  padding: 16px;
}

.content-review-sidebar select {
  width: 100%;
  height: 36px;
  box-sizing: border-box;
  border: 1px solid #cfd5df;
  padding: 0 10px;
  background: #fff;
}

.popup-position-grid {
  display: grid;
  grid-template-columns: 110px minmax(120px, 1fr) 110px minmax(120px, 1fr);
  align-items: center;
  border-top: 1px solid var(--line-dark);
}

.popup-position-grid > div {
  min-height: 48px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
}

.popup-position-grid .position-label {
  background: #e7e7e7;
  font-weight: 700;
  text-align: center;
}

.popup-time-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.popup-time-row .date-input {
  width: 132px;
}

.popup-time-row .select-input {
  width: 62px;
}

.popup-date-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.popup-date-row .date-input {
  width: 200px;
}

.popup-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
  margin-top: 14px;
}

.popup-form-actions.has-delete {
  justify-content: space-between;
}

.popup-form-actions.has-delete > div {
  display: flex;
  gap: 6px;
}

.wide-textarea {
  display: block;
  width: 100%;
  min-height: 200px;
  border: 1px solid #cfd5df;
  padding: 12px;
  resize: none;
  background: #fff;
}

.inquiry-detail-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid var(--line-dark);
  background: #fff;
}

.inquiry-detail-table th,
.inquiry-detail-table td {
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}

.inquiry-detail-table th {
  width: 180px;
  padding: 13px 12px;
  background: #e7e7e7;
  text-align: left;
}

.inquiry-detail-table td {
  padding: 10px 12px;
}

.inquiry-detail-table a {
  color: var(--blue);
  text-decoration: none;
}

.inquiry-file-link {
  line-height: 1.8;
}

.inquiry-file-link::before {
  content: "∥";
  margin-right: 10px;
  color: #9aa1ad;
  font-weight: 700;
}

.inquiry-memo {
  min-height: 100px;
}

.inquiry-answer {
  min-height: 400px;
}

.submission-answer-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.submission-answer-head span {
  color: #6b7280;
  font-size: 13px;
}

.robots-content {
  padding-top: 0;
}

.robots-tabs {
  display: flex;
  align-items: flex-end;
  margin-top: 28px;
  border-bottom: 1px solid var(--purple);
}

.robots-tabs button {
  height: 38px;
  min-width: 128px;
  border: 1px solid var(--purple);
  border-bottom: 0;
  background: #fff;
  color: var(--purple);
  font-weight: 700;
}

.robots-title-row {
  margin: 22px 0 8px;
  font-weight: 700;
}

.robots-editor {
  display: grid;
  grid-template-columns: 56px 1fr;
  min-height: 310px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.robots-lines {
  padding: 10px 8px;
  background: #f3f4f6;
  color: #8a93a3;
  font-family: Consolas, "Courier New", monospace;
  line-height: 1.6;
  text-align: right;
  user-select: none;
}

.robots-editor textarea {
  width: 100%;
  min-height: 310px;
  border: 0;
  padding: 10px 12px;
  background: #fff;
  font-family: Consolas, "Courier New", monospace;
  line-height: 1.6;
  resize: none;
}

.robots-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
}

.robots-actions-right {
  display: flex;
  gap: 6px;
}

.sitemap-tree {
  margin-top: 28px;
  border-bottom: 1px solid var(--line);
  background: #f8f8f9;
}

.sitemap-row {
  display: grid;
  grid-template-columns: minmax(320px, 1fr) 128px;
  align-items: center;
  min-height: 35px;
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.sitemap-row.is-child {
  background: #f9fafb;
}

.sitemap-row:last-child {
  border-bottom: 0;
}

.sitemap-name {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 0 12px;
}

.sitemap-name.is-child {
  padding-left: 34px;
}

.sitemap-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
}

.sitemap-status {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  border-radius: 4px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.sitemap-status.is-manual {
  background: #f59e0b;
}

.sitemap-status.is-auto {
  background: #4da3ff;
}

.sitemap-form-section {
  margin-top: 28px;
}

.sitemap-section-title {
  margin: 22px 0 8px;
  font-size: 15px;
  font-weight: 700;
}

.sitemap-content-editor {
  display: grid;
  grid-template-columns: 56px 1fr;
  min-height: 300px;
  border-top: 1px solid var(--line-dark);
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.sitemap-content-editor .robots-lines {
  min-height: 300px;
}

.sitemap-content-editor textarea {
  width: 100%;
  min-height: 300px;
  border: 0;
  padding: 10px 12px;
  background: #fff;
  font-family: Consolas, "Courier New", monospace;
  line-height: 1.6;
  resize: none;
}

.sitemap-input-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 14px;
}

.sitemap-page-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
}

.sitemap-page-actions.is-right-only {
  justify-content: flex-end;
}

.sitemap-page-actions > div {
  display: flex;
  gap: 6px;
}

.inquiry-inline-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
}

.inquiry-detail-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 12px;
}

.inquiry-detail-actions > div {
  display: flex;
  gap: 6px;
}

.writer-form-table {
  margin-top: 8px;
}

.writer-form-table th,
.writer-sns-table th {
  width: 120px;
}

.writer-form-table .wide-input {
  width: 100%;
}

.radio-row {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-right: 18px;
  line-height: 30px;
}

.radio-row input {
  margin: 0;
}

.inline-marker-wrap {
  display: inline-flex;
  align-items: center;
}

.writer-intro {
  min-height: 135px;
}

.writer-note {
  min-height: 135px;
}

.writer-sns-table {
  margin-top: 8px;
}

.writer-sns-row {
  display: grid;
  grid-template-columns: 140px minmax(320px, 1fr) 22px 22px 42px;
  gap: 4px;
  align-items: center;
  margin-top: 8px;
}

.writer-sns-row input {
  height: 30px;
  border: 1px solid #cfd5df;
  padding: 0 10px;
}

.writer-fee-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin: 10px 0 12px;
}

.writer-fee-summary > div {
  border: 1px solid #d8dde6;
  background: #fff;
  padding: 12px 14px;
}

.writer-fee-summary span {
  display: block;
  margin-bottom: 6px;
  color: #777;
  font-size: 12px;
}

.writer-fee-summary strong {
  font-size: 18px;
}

.writer-fee-table th,
.writer-fee-table td {
  text-align: center;
  white-space: nowrap;
}

.writer-fee-table td:nth-child(3) {
  text-align: left;
}

.writer-form-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-top: 14px;
}

.writer-form-actions.has-delete {
  justify-content: space-between;
}

.writer-form-actions > div {
  display: flex;
  align-items: center;
  gap: 6px;
}

.writer-update-help {
  margin: 0 10px 0 0;
  color: #06f;
  font-size: 12px;
}

.readonly-value {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
}

.button-line {
  display: flex;
  justify-content: space-between;
  margin: 14px 0 26px;
}

.button-line .right {
  display: flex;
  gap: 6px;
}

.annotated {
  position: relative;
  outline: 0 solid transparent;
}

.annotated[data-marker]::before {
  content: attr(data-marker);
  position: absolute;
  left: -10px;
  top: -10px;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.22);
}

.annotated[data-marker]:hover {
  outline: 2px solid rgba(232, 55, 62, 0.45);
  outline-offset: 2px;
}

.annotated[data-marker].is-hovered {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* 입주기업 관리 */
.company-admin-content {
  min-width: 0;
  padding-bottom: 60px;
}

.company-search-table {
  margin-top: 28px;
}

.company-keyword-input {
  width: min(560px, 65%);
}

.tenant-member-list-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.approval-actions { white-space: nowrap; }
.approval-actions .white-button { margin-left: 6px; }
.alarm-history-table { min-width: 1260px; }
.alarm-history-table th, .alarm-history-table td { white-space: nowrap; }
.alarm-channel { display: inline-flex; align-items: center; min-height: 25px; padding: 0 9px; border-radius: 14px; font-size: 12px; font-weight: 700; }
.alarm-channel.kakao { color: #795600; background: #fff0b7; }
.alarm-channel.email { color: #176b87; background: #e5f5fa; }
.alarm-detail-layout { display: grid; grid-template-columns: minmax(420px, .92fr) minmax(430px, 1.08fr); gap: 20px; margin-top: 18px; align-items: stretch; }
.alarm-detail-table { width: 100%; border-collapse: collapse; }
.alarm-detail-table th { width: 130px; padding: 11px 14px; border-bottom: 1px solid #dfe4ea; background: #f4f6f8; color: #475467; text-align: left; font-size: 13px; }
.alarm-detail-table td { padding: 11px 14px; border-bottom: 1px solid #dfe4ea; color: #344054; font-size: 13px; }
.alarm-preview-card { min-height: 570px; }
.alarm-phone-preview { position: relative; width: 250px; height: 470px; margin: 16px auto 0; padding: 13px; border: 8px solid #263246; border-radius: 32px; background: #263246; box-shadow: 0 12px 28px rgba(33, 46, 66, .2); }
.alarm-phone-speaker { position: absolute; z-index: 1; top: 18px; left: 50%; width: 62px; height: 6px; transform: translateX(-50%); border-radius: 5px; background: #263246; }
.alarm-phone-screen { height: 100%; overflow: hidden; border-radius: 22px; background: #e9f0f6; }
.alarm-phone-status { display: flex; justify-content: space-between; padding: 10px 14px 7px; color: #233147; font-size: 10px; font-weight: 800; }
.alarm-chat-title { padding: 11px; border-top: 1px solid #dce4ec; border-bottom: 1px solid #dce4ec; background: #fff; color: #263246; text-align: center; font-size: 12px; font-weight: 800; }
.alarm-chat-bubble { margin: 18px 12px; padding: 14px; border-radius: 3px 13px 13px 13px; background: #ffe571; color: #332e1a; font-size: 12px; line-height: 1.55; }
.alarm-chat-bubble strong { display: block; margin-bottom: 7px; font-size: 13px; }
.alarm-chat-bubble p { margin: 7px 0; }
.alarm-chat-bubble a, .alarm-email-preview article > a { display: block; margin-top: 12px; padding: 8px; border-radius: 4px; background: #fff; color: #4f3c00; text-align: center; font-size: 12px; font-weight: 800; text-decoration: none; }
.alarm-chat-bubble small { display: block; margin-top: 9px; color: #766721; text-align: right; font-size: 9px; }
.alarm-email-preview { max-width: 560px; margin: 16px auto 0; border: 1px solid #d6dee8; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 5px 16px rgba(38, 50, 70, .08); }
.alarm-email-top { display: flex; align-items: center; gap: 9px; padding: 16px 20px; border-bottom: 1px solid #dfe4ea; color: #263246; }
.alarm-email-top span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 50%; background: #e8effa; color: #4b6fae; font-size: 17px; }
.alarm-email-meta { padding: 13px 20px; border-bottom: 1px solid #e4e9ef; color: #66758a; font-size: 12px; }
.alarm-email-meta div + div { margin-top: 7px; }
.alarm-email-meta b { display: inline-block; width: 64px; color: #475467; }
.alarm-email-preview article { padding: 30px 38px; color: #475467; font-size: 14px; line-height: 1.7; }
.alarm-email-preview h3 { margin: 0 0 24px; color: #24334d; font-size: 21px; }
.alarm-email-preview article > a { width: 180px; margin: 26px 0; background: #5637f5; color: #fff; }
.alarm-email-preview hr { border: 0; border-top: 1px solid #e4e9ef; }
.alarm-email-foot { color: #8b96a5; font-size: 12px; }
.submission-target-search { margin-top: 16px; }
.submission-target-search-action { margin: 10px 0 16px; }
.submission-target-pager { margin-top: 16px; }
.submission-create-actions { display: flex; align-items: center; gap: 9px; }
.submission-file-list { display: grid; gap: 8px; }
.submission-file-row { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(300px, 1.35fr) auto; gap: 8px; align-items: center; padding: 10px; border: 1px solid #dce3ed; border-radius: 4px; background: #f8fafc; }
.submission-file-row input { min-width: 0; }
.submission-group-list-actions { display: flex; align-items: center; gap: 9px; }
.submission-detail-status-search { margin: 14px 0 16px; }
.submission-progress { width: 76px; height: 6px; margin: 0 auto 5px; overflow: hidden; border-radius: 99px; background: #e8edf3; }
.submission-progress span { display: block; height: 100%; border-radius: inherit; }
.submission-progress.is-success span { background: #28a47b; }
.submission-progress.is-warning span { background: #f1ad2e; }
.submission-progress.is-danger span { background: #e3605b; }
.submission-request-files { margin-top: 18px; padding-top: 16px; border-top: 1px solid #dfe5ed; }
.submission-request-files strong { display: block; color: #1d2b3f; font-size: 14px; }
.submission-request-files p { margin: 5px 0 10px; color: #6d7b8f; font-size: 13px; }
.submission-request-file-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.submission-detail-actions { display: flex; align-items: center; gap: 9px; }
.performance-table-wrap { overflow: visible; }
.performance-table-annotation, .performance-search-annotated { margin-left: 12px; width: calc(100% - 12px); }
.performance-table-annotation { position: relative; }
.performance-summary-table { min-width: 0; table-layout: fixed; }
.performance-summary-table th, .performance-summary-table td { white-space: normal; overflow-wrap: anywhere; word-break: keep-all; }
.performance-summary-table th:nth-child(1), .performance-summary-table td:nth-child(1) { width: 48px; }
.performance-summary-table th:nth-child(2), .performance-summary-table td:nth-child(2) { width: 120px; }
.performance-summary-table th:nth-child(3), .performance-summary-table td:nth-child(3) { width: 145px; }
.performance-summary-table th:nth-child(4), .performance-summary-table td:nth-child(4) { width: 60px; }
.performance-summary-table th:nth-child(5), .performance-summary-table td:nth-child(5), .performance-summary-table th:nth-child(6), .performance-summary-table td:nth-child(6), .performance-summary-table th:nth-child(9), .performance-summary-table td:nth-child(9), .performance-summary-table th:nth-child(10), .performance-summary-table td:nth-child(10), .performance-summary-table th:nth-child(11), .performance-summary-table td:nth-child(11) { width: 9%; }
.performance-summary-table th:nth-child(7), .performance-summary-table td:nth-child(7), .performance-summary-table th:nth-child(8), .performance-summary-table td:nth-child(8), .performance-summary-table th:nth-child(12), .performance-summary-table td:nth-child(12), .performance-summary-table th:nth-child(13), .performance-summary-table td:nth-child(13) { display: none; }
.performance-summary-table td:nth-child(5)::after, .performance-summary-table td:nth-child(6)::after { content: "건"; margin-left: 2px; color: #66758a; font-size: 12px; }
.performance-summary-table td:nth-child(9)::after, .performance-summary-table td:nth-child(10)::after { content: "억원"; margin-left: 2px; color: #66758a; font-size: 12px; }
.performance-summary-table td:nth-child(11)::after { content: "명"; margin-left: 2px; color: #66758a; font-size: 12px; }
.performance-tabs { display: flex; flex-wrap: wrap; gap: 0; margin: 14px 0 16px; border-bottom: 2px solid #5b32f2; }
.performance-tabs button { margin: 0; padding: 10px 14px; border: 1px solid #d7ddea; border-bottom: 0; background: #f8fafc; color: #41506a; font-weight: 700; }
.performance-tabs button + button { margin-left: -1px; }
.performance-tabs button.is-active { position: relative; z-index: 1; border-color: #5b32f2; background: #5b32f2; color: #fff; }
.performance-tabs b { margin-left: 3px; font-size: 12px; }
.performance-entry-form { margin: 0 0 16px; padding: 16px; border: 1px solid #dfe5ed; border-radius: 6px; background: #f8fafc; }
.performance-entry-form .company-form-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.performance-entry-head, .performance-form-actions, .performance-row-actions { display: flex; align-items: center; gap: 9px; }
.performance-entry-head { justify-content: space-between; margin-bottom: 14px; color: #1d2b3f; }
.performance-form-actions { justify-content: flex-end; margin-top: 14px; }
.performance-row-actions { justify-content: center; }
.performance-row-actions button { margin: 0; }
.performance-search-select { margin-right: 9px; }
.performance-admin-badge { padding: 7px 10px; border-radius: 16px; background: #eef1ff; color: #4d37bf; font-size: 12px; font-weight: 700; }
.performance-file-line { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #dfe5ed; }
.performance-file-line > span { color: #25364d; font-weight: 700; }
.performance-file-line p { margin: 0; color: #6d7b8f; font-size: 13px; }
.performance-radio-line { display: flex; align-items: center; gap: 16px; min-height: 38px; }
.performance-radio-line label { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; font-weight: 500; }
.performance-radio-line input { width: auto !important; height: auto !important; min-width: 0 !important; margin: 0; padding: 0 !important; }
.resource-list-actions { display: flex; align-items: center; gap: 9px; }
.resource-search-select { margin-right: 9px; }
.resource-file-list { display: grid; gap: 8px; }
.resource-file-list > div { display: grid; grid-template-columns: 44px minmax(0, 1fr) 70px auto auto; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #dfe5ed; border-radius: 4px; background: #f8fafc; }
.resource-file-list strong { color: #5b32f2; }
.resource-file-list em { color: #778398; font-size: 12px; font-style: normal; }
.resource-file-actions { display: inline-flex; align-items: center; gap: 8px; }
.resource-file-edit-inputs { display: flex; align-items: center; gap: 8px; min-width: 0; }
.resource-file-edit-inputs input[type="text"] { min-width: 0; width: 100%; }
.resource-file-edit-inputs input[type="file"] { max-width: 190px; font-size: 12px; }
.dashboard-frame { grid-template-columns: 228px minmax(0, 1fr); background: #f3f5f8; }
.dashboard-main { min-width: 0; padding: 30px; }
.dashboard-page-title { margin: 0 0 22px; color: #18243a; font-size: 24px; font-weight: 800; }
.dashboard-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.dashboard-summary-grid .dashboard-card { min-width: 0; min-height: 272px; padding: 20px; border: 1px solid #dde3ec; border-radius: 8px; background: #fff; box-shadow: none; }
.dashboard-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid #e7ebf0; }
.dashboard-card-head h2 { margin: 0; color: #243047; font-size: 16px; font-weight: 800; }
.dashboard-card-head h2 em { color: #5b32f2; font-style: normal; }
.dashboard-date { color: #8490a3; font-size: 11px; white-space: nowrap; }
.dashboard-total { display: flex; align-items: baseline; justify-content: flex-end; gap: 4px; padding: 17px 0 13px; }
.dashboard-total strong { color: #5631f3; font-size: 28px; letter-spacing: -1px; }
.dashboard-total span { color: #617086; font-size: 13px; font-weight: 700; }
.dashboard-building-list, .dashboard-money-list, .dashboard-progress-list, .dashboard-recent-list { margin: 0; padding: 0; list-style: none; }
.dashboard-building-list li, .dashboard-money-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 0; color: #566378; font-size: 13px; border-top: 1px solid #f0f2f5; }
.dashboard-building-list b, .dashboard-money-list b { color: #29384f; font-size: 13px; }
.dashboard-total-inline { color: #68758a; font-size: 12px; white-space: nowrap; }
.dashboard-total-inline strong { color: #5631f3; font-size: 17px; }
.dashboard-progress-list { padding-top: 16px; }
.dashboard-progress-list li { margin-bottom: 16px; }
.dashboard-progress-list li > div { display: flex; justify-content: space-between; margin-bottom: 7px; color: #536075; font-size: 12px; }
.dashboard-progress-list li b { color: #283750; }
.dashboard-progress { display: block; height: 9px; overflow: hidden; border-radius: 9px; background: #edf0f5; }
.dashboard-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #5b32f2, #8468fb); }
.receivable-total strong { color: #e25e59; font-size: 25px; }
.dashboard-money-list li { padding: 8px 0; }
.text-link-button { margin: 0; padding: 0; border: 0; background: transparent; color: #5b32f2; font-size: 12px; font-weight: 700; cursor: pointer; }
.dashboard-recent-list { padding-top: 7px; }
.dashboard-recent-list li { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 34px; border-bottom: 1px solid #eef1f5; font-size: 12px; }
.dashboard-recent-list time { color: #8a95a5; }
.dashboard-recent-list span { overflow: hidden; color: #34435b; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-item-link { cursor: pointer; }
.dashboard-item-link:hover { color: #5b32f2 !important; text-decoration: underline; }
.tenant-admin-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin: 18px 0; }
.tenant-admin-summary article { display: flex; min-width: 0; min-height: 158px; flex-direction: column; align-items: flex-start; padding: 18px; border: 1px solid #dce3ed; border-radius: 7px; background: #fff; }
.tenant-admin-summary span { color: #718096; font-size: 12px; font-weight: 700; }
.tenant-admin-summary strong { margin-top: 13px; color: #26364e; font-size: 19px; line-height: 1.45; }
.tenant-admin-summary strong.is-alert { color: #e25e59; }
.tenant-admin-summary em { margin-top: 5px; color: #8a95a5; font-size: 12px; font-style: normal; }
.tenant-admin-summary button { margin-top: auto; padding: 0; border: 0; background: transparent; color: #5b32f2; font-size: 12px; font-weight: 800; cursor: pointer; }
.tenant-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.tenant-admin-grid .room-detail-card { margin: 0; }
.tenant-admin-list { margin: 0; padding: 0; list-style: none; }
.tenant-admin-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; border-bottom: 1px solid #edf0f4; color: #3e4a5d; font-size: 13px; }
.tenant-admin-list time { color: #8b97a8; font-size: 12px; }
.tenant-admin-shortcuts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.tenant-admin-shortcuts button { display: flex; min-height: 118px; flex-direction: column; align-items: flex-start; gap: 7px; padding: 17px; border: 1px solid #dce3ed; border-radius: 7px; background: #fff; color: #2d3b52; text-align: left; cursor: pointer; }
.tenant-admin-shortcuts b { color: #5b32f2; font-size: 11px; }.tenant-admin-shortcuts strong { font-size: 14px; }.tenant-admin-shortcuts span { color: #7d899a; font-size: 12px; }
.tenant-profile-modal[hidden] { display: none; }
.tenant-profile-modal { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; padding: 20px; background: rgba(18, 28, 45, 0.42); }
.tenant-profile-dialog { width: min(100%, 660px); padding: 22px; border-radius: 8px; background: #fff; box-shadow: 0 18px 48px rgba(16, 24, 39, 0.3); }
[data-tenant-portal-page="resource-detail"] .company-form-grid > label.tenant-resource-guide,
[data-tenant-portal-page="resource-detail"] .company-form-grid > label.is-wide { grid-column: 1 / -1; }
@media (max-width: 1100px) { .tenant-admin-summary, .tenant-admin-shortcuts { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tenant-admin-grid { grid-template-columns: 1fr; } }
.dashboard-recent-list b { color: #768399; font-size: 11px; font-weight: 500; white-space: nowrap; }
.dashboard-operation-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 18px; }
.dashboard-operation-grid .dashboard-work-card { min-width: 0; min-height: 246px; padding: 20px; border: 1px solid #dde3ec; border-radius: 8px; background: #fff; }
.dashboard-work-card .dashboard-card-head h2 { font-size: 15px; }
.dashboard-work-list, .dashboard-contract-list { margin: 0; padding: 8px 0 0; list-style: none; }
.dashboard-work-list li { display: grid; grid-template-columns: 22px minmax(0, 1fr) 38px; align-items: center; gap: 7px; min-height: 35px; border-bottom: 1px solid #eef1f5; }
.dashboard-work-list b { display: inline-grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; background: #f0edff; color: #5b32f2; font-size: 10px; }
.dashboard-work-list span { overflow: hidden; color: #34435b; font-size: 12px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-work-list time, .dashboard-contract-list time { color: #8591a3; font-size: 11px; white-space: nowrap; }
.dashboard-contract-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 35px; border-bottom: 1px solid #eef1f5; }
.dashboard-contract-list span { color: #34435b; font-size: 12px; font-weight: 700; }
@media (max-width: 1440px) { .dashboard-operation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 820px) { .dashboard-operation-grid { grid-template-columns: 1fr; } }
@media (max-width: 1440px) { .dashboard-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 820px) { .dashboard-main { padding: 18px; } .dashboard-summary-grid { grid-template-columns: 1fr; } }
.resource-file-editor { display: grid; gap: 8px; }
.resource-file-editor > div { display: grid; grid-template-columns: minmax(230px, 1fr) minmax(260px, 1fr) auto; gap: 9px; align-items: center; padding: 10px; border: 1px solid #dfe5ed; border-radius: 4px; background: #f8fafc; }
.resource-editor-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.company-form-grid > .resource-editor-field.is-wide { grid-column: 1 / -1; width: 100%; }
.resource-editor-field > span { color: #3e4a5d; font-size: 13px; font-weight: 800; }
.resource-html-editor.is-readonly .communication-editor-toolbar button,
.resource-html-editor.is-readonly .communication-editor-toolbar select { cursor: default; opacity: 0.68; }
.resource-html-editor .communication-editor-body { min-height: 340px; outline: 0; }
.resource-html-editor .communication-editor-body p { margin: 0 0 9px; }
.resource-html-editor .communication-editor-body ul { margin: 0; padding-left: 20px; }
@media (max-width: 720px) { .performance-entry-form .company-form-grid.cols-2 { grid-template-columns: 1fr; } }
.company-form-grid > label[data-ip-registration][hidden] { display: none !important; }
@media (max-width: 1080px) { .alarm-detail-layout { grid-template-columns: 1fr; } }

/* 회의실 일정 관리 */
.meeting-schedule-create-content { min-width: 0; padding-bottom: 60px; }
.meeting-schedule-panel { margin-top: 18px; }
.meeting-schedule-panel.company-detail-panel { padding: 28px; }
.meeting-schedule-panel h2 { margin: 0 0 20px; padding-bottom: 12px; border-bottom: 1px solid #edf0f3; color: #243043; font-size: 16px; }
.meeting-top-controls { display: flex; align-items: center; gap: 18px; padding: 14px 16px; border: 1px solid #dfe4ea; border-radius: 4px; background: #f8fafc; }
.meeting-top-controls label, .meeting-time-row label { display: inline-flex; align-items: center; gap: 5px; }
.meeting-period-inputs { display: flex; align-items: center; gap: 7px; margin-left: auto; }
.meeting-period-inputs input { width: 150px; }
.meeting-room-select { display: flex; align-items: center; gap: 8px; padding: 18px 0; }
.meeting-room-select > label { color: #344054; font-size: 13px; font-weight: 700; }
.meeting-room-select select { width: 180px; }
.meeting-room-select b { color: #df5050; }
.meeting-legend { display: flex; align-items: center; gap: 7px; margin-left: auto; color: #667085; font-size: 12px; }
.meeting-legend i { width: 10px; height: 10px; border-radius: 50%; border: 1px solid #1fb582; }
.meeting-legend .is-registered { border-color: #b8bec8; background: #b8bec8; }
.meeting-legend .is-selected { border-color: #21b78a; background: #21b78a; }
.meeting-legend .is-disabled { border-color: #efae33; background: #efae33; }
.meeting-schedule-layout { display: grid; grid-template-columns: minmax(520px, 1.1fr) minmax(460px, .9fr); gap: 20px; }
.meeting-calendar-wrap, .meeting-time-wrap { border: 1px solid #dfe4ea; border-radius: 4px; background: #fff; overflow: hidden; }
.meeting-calendar-head { display: flex; align-items: center; gap: 18px; margin: 0; padding: 13px 16px; border-bottom: 1px solid #dfe4ea; color: #243043; font-size: 16px; }
.calendar-nav { width: 28px; height: 28px; border: 1px solid #cfd6df; border-radius: 4px; background: #fff; color: #667085; font-size: 22px; cursor: pointer; }
.meeting-calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); border-left: 1px solid #cfd6df; border-top: 1px solid #cfd6df; }
.meeting-calendar-grid > * { min-height: 74px; border-right: 1px solid #cfd6df; border-bottom: 1px solid #cfd6df; background: #fff; }
.meeting-calendar-week > span { min-height: 38px; display: grid; place-items: center; background: #f7f8fa; font-weight: 700; }
.meeting-calendar-grid button { position: relative; padding: 0; color: #596577; font-weight: 700; cursor: pointer; }
.meeting-calendar-grid button::after { content: ""; position: absolute; inset: 50% auto auto 50%; width: 28px; height: 28px; border: 1.5px solid #19b57e; border-radius: 50%; transform: translate(-50%, -50%); }
.meeting-calendar-grid button.is-registered { color: #fff; }
.meeting-calendar-grid button.is-registered::after { border-color: #c8ccd3; background: #c8ccd3; z-index: 0; }
.meeting-calendar-grid button.is-selected { color: #fff; }
.meeting-calendar-grid button.is-selected::after { border-color: #21b78a; background: #21b78a; z-index: 0; }
.meeting-calendar-grid button { isolation: isolate; }
.meeting-calendar-grid button { text-shadow: 0 0 0 currentColor; }
.meeting-calendar-grid button.is-registered, .meeting-calendar-grid button.is-selected { z-index: 1; }
.meeting-calendar-grid button.is-registered::before, .meeting-calendar-grid button.is-selected::before { content: attr(data-day); }
.meeting-calendar-grid button.is-registered, .meeting-calendar-grid button.is-selected { color: #fff; }
.meeting-calendar-grid button::after, .meeting-calendar-grid button.is-registered::before, .meeting-calendar-grid button.is-selected::before { content: none; }
.meeting-calendar-grid button.is-available { background: radial-gradient(circle at center, #fff 0 13px, #19b57e 14px 15px, transparent 16px); }
.meeting-calendar-grid button.is-registered { background: radial-gradient(circle at center, #c8ccd3 0 14px, transparent 15px); }
.meeting-calendar-grid button.is-selected { background: radial-gradient(circle at center, #21b78a 0 14px, transparent 15px); }
.meeting-time-wrap h2 { margin: 0; padding: 14px 16px; border-bottom: 1px solid #dfe4ea; color: #243043; font-size: 15px; }
.meeting-time-row { display: grid; grid-template-columns: 1fr 82px 82px; align-items: center; gap: 10px; min-height: 40px; padding: 0 14px; border-bottom: 1px solid #e7ebef; font-size: 13px; }
.meeting-time-row strong { color: #4b596d; }
.meeting-selected-dates { display: flex; flex-wrap: wrap; align-content: flex-start; gap: 8px; min-height: 76px; height: auto; margin-top: 18px; padding: 14px; border: 1px solid #dfe4ea; border-radius: 4px; background: #f8fafc; }
.meeting-selected-dates span { display: inline-flex; align-items: center; gap: 7px; height: 30px; padding: 0 10px; border: 1px solid #20b582; border-radius: 16px; color: #159b70; font-size: 12px; }
.meeting-selected-dates button { border: 0; background: transparent; color: inherit; font-weight: 800; cursor: pointer; }
.meeting-selected-dates em { color: #98a2b3; font-size: 13px; font-style: normal; }
.meeting-schedule-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; }
.meeting-schedule-list-table th, .meeting-schedule-list-table td { white-space: nowrap; }
@media (max-width: 1100px) { .meeting-schedule-layout { grid-template-columns: 1fr; } .meeting-legend { display: none; } }

.meeting-room-registration-layout { display: grid; grid-template-columns: minmax(470px, .82fr) minmax(700px, 1.18fr); gap: 20px; margin-top: 18px; }
.meeting-date-column, .meeting-config-column { min-width: 0; }
.meeting-date-mode { display: flex; align-items: center; gap: 14px; min-height: 46px; padding: 0 12px; border: 1px solid #dfe4ea; border-radius: 4px; background: #fff; font-size: 13px; }
.meeting-date-mode label, .meeting-config-table label { display: inline-flex; align-items: center; gap: 5px; }
.meeting-date-mode .meeting-period-inputs { margin-left: auto; }
.meeting-date-mode .meeting-period-inputs[hidden] { display: none !important; }
.meeting-date-mode .meeting-period-inputs { gap: 8px; padding: 4px 0; }
.meeting-date-mode .meeting-period-inputs input[type="date"] { width: 142px; height: 34px; padding: 0 9px; border: 1px solid #cfd6df; border-radius: 4px; background: #fff; color: #344054; font-size: 13px; }
.meeting-date-mode .meeting-period-inputs > span { color: #98a2b3; font-weight: 700; }
.meeting-date-mode .meeting-period-inputs .primary-button { height: 34px; padding: 0 13px; border-radius: 4px; font-size: 13px; }
.meeting-calendar-card { margin-top: 14px; border: 1px solid #dfe4ea; border-radius: 4px; overflow: hidden; background: #fff; }
.meeting-calendar-card .meeting-calendar-head { justify-content: flex-start; }
.meeting-calendar-card .meeting-legend { margin-left: auto; }
.meeting-calendar-card .meeting-calendar-grid { border: 0; }
.meeting-calendar-card .meeting-calendar-week { border-bottom: 1px solid #dfe4ea; }
.meeting-calendar-card .meeting-calendar-grid > * { border: 0; border-right: 1px solid #dfe4ea; border-bottom: 1px solid #dfe4ea; }
.meeting-calendar-card .meeting-calendar-grid > *:nth-child(7n) { border-right: 0; }
.meeting-calendar-card [data-meeting-calendar] > *:nth-last-child(-n + 7) { border-bottom: 0; }
.meeting-config-toolbar { display: flex; justify-content: flex-end; gap: 8px; min-height: 45px; padding-bottom: 10px; }
.meeting-config-toolbar input { width: 142px; }
.meeting-room-tabs { display: flex; gap: 6px; padding: 6px; border: 1px solid #d9dfea; border-radius: 7px 7px 0 0; background: #f6f8fb; }
.meeting-room-tabs button { min-width: 112px; height: 40px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #667085; font-weight: 800; transition: .18s ease; }
.meeting-room-tabs button:hover { background: #ece8ff; color: #5435d5; }
.meeting-room-tabs button.is-active { border-color: #5b33e8; background: #5b33e8; box-shadow: 0 2px 5px rgba(91, 51, 232, .24); color: #fff; }
.meeting-room-tab-summary { display: flex; align-items: center; gap: 9px; min-height: 38px; padding: 0 14px; border: 1px solid #d9dfea; border-top: 0; background: #fff; color: #758299; font-size: 12px; }
.meeting-room-tab-summary strong { color: #4d2cc6; font-size: 13px; }
.meeting-config-table { width: 100%; border-collapse: collapse; border-top: 1px solid #9ca7b7; background: #fff; }
.meeting-config-table th { width: 156px; padding: 14px 16px; border-bottom: 1px solid #dfe4ea; background: #f4f6f8; color: #344054; text-align: left; font-size: 13px; }
.meeting-config-table th b { color: #df5050; }
.meeting-config-table td { padding: 10px 12px; border-bottom: 1px solid #dfe4ea; font-size: 13px; }
.meeting-config-table td > input, .meeting-config-table td > textarea { width: 100%; }
.meeting-config-table textarea { min-height: 110px; resize: vertical; }
.meeting-config-table small { display: block; margin-top: 6px; color: #7d8795; font-size: 12px; }
.meeting-slot-header, .meeting-slot-row { display: grid; grid-template-columns: minmax(160px, 1fr) 90px 90px; align-items: center; gap: 8px; }
.meeting-slot-header { min-height: 34px; padding: 0 10px; background: #f4f6f8; color: #475467; font-weight: 700; }
.meeting-slot-header span:nth-child(2) { grid-column: 2 / 4; text-align: center; }
.meeting-slot-row { min-height: 34px; padding: 0 10px; border-bottom: 1px solid #edf0f3; }
.meeting-slot-row strong { color: #475467; font-size: 12px; }
.meeting-inline-field { display: inline-flex; align-items: center; gap: 5px; margin-left: 14px; }
.meeting-inline-field input { width: 58px; }
.meeting-item-header, .meeting-item-row { display: grid; grid-template-columns: minmax(120px, 1fr) minmax(170px, 1.4fr) 74px 70px 56px; align-items: center; gap: 10px; }
.meeting-item-header { min-height: 34px; padding: 0 10px; background: #f4f6f8; color: #475467; font-weight: 700; }
.meeting-item-row { padding: 9px 10px; border-bottom: 1px solid #edf0f3; }
.meeting-item-row input[type="text"] { width: 100%; }
.meeting-item-row input[type="number"] { width: 100%; }
.meeting-item-row .white-button { min-width: 0; }
.meeting-schedule-create-content > .meeting-schedule-actions { margin-top: 18px; }
.meeting-day-slot-list { margin-top: 22px; border: 1px solid #dfe4ea; border-radius: 4px; overflow: hidden; }
.meeting-day-slot-list .meeting-slot-row { grid-template-columns: 1fr 100px 100px; min-height: 42px; }
.meeting-day-slot-header, .meeting-day-slot-row { display: grid; grid-template-columns: 1fr 100px 100px; align-items: center; gap: 8px; }
.meeting-day-slot-header { min-height: 36px; padding: 0 12px; background: #f4f6f8; color: #475467; font-size: 13px; font-weight: 700; }
.meeting-day-slot-header span:last-child { grid-column: 2 / 4; text-align: center; }
.meeting-day-slot-row { min-height: 40px; padding: 0 12px; border-bottom: 1px solid #edf0f3; font-size: 13px; }
.meeting-day-slot-row:last-child { border-bottom: 0; }
.meeting-day-slot-row strong { color: #475467; }
.meeting-delete-button { border-color: #e3605b; color: #cf4b47; }
.manual-reservation-member { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 16px 18px; border: 1px solid #dfe4ea; border-radius: 5px; background: #fff; }
.manual-reservation-member strong { color: #24334d; font-size: 14px; }
.manual-reservation-member strong b { color: #df5050; }
.manual-reservation-member p { margin: 5px 0 0; color: #7d8795; font-size: 12px; }
.manual-member-value { display: flex; align-items: center; gap: 12px; min-width: 390px; }
.manual-member-value span { flex: 1; min-height: 36px; padding: 9px 12px; border: 1px solid #cfd6df; border-radius: 4px; background: #f8fafc; color: #475467; font-size: 13px; }
.manual-reservation-layout { margin-top: 20px; }
.manual-room-summary { padding: 12px 14px; border: 1px solid #dfe4ea; border-top: 0; color: #66758a; background: #f8fafc; font-size: 12px; }
.meeting-slot-row.is-slot-unavailable { background: #f7f8fa; color: #98a2b3; }
.meeting-slot-row.is-slot-unavailable strong { color: #98a2b3; }
.manual-member-modal[hidden] { display: none; }
.manual-member-modal { position: fixed; inset: 0; z-index: 120; display: grid; place-items: center; padding: 24px; }
.manual-member-modal-backdrop { position: absolute; inset: 0; background: rgba(18, 28, 45, .48); }
.manual-member-dialog { position: relative; z-index: 1; width: min(900px, 100%); overflow: hidden; border: 1px solid #ccd5e0; border-radius: 9px; background: #fff; box-shadow: 0 20px 50px rgba(0,0,0,.22); }
.manual-member-dialog header, .manual-member-dialog footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 20px; }
.manual-member-dialog header { border-bottom: 1px solid #e0e6ed; }
.manual-member-dialog h2 { margin: 0 0 4px; color: #24334d; font-size: 18px; }
.manual-member-dialog p { margin: 0; color: #66758a; font-size: 13px; }
.manual-member-search { display: flex; gap: 8px; padding: 14px 20px; border-bottom: 1px solid #e0e6ed; background: #f8fafc; }
.manual-member-search select, .manual-member-search input { height: 36px; border: 1px solid #cfd6df; border-radius: 4px; background: #fff; padding: 0 10px; color: #344054; }
.manual-member-search input { flex: 1; }
.manual-member-dialog-body { max-height: 330px; overflow: auto; padding: 0 20px; }
.manual-member-dialog footer { justify-content: flex-end; border-top: 1px solid #e0e6ed; }
@media (max-width: 800px) { .manual-reservation-member { align-items: flex-start; flex-direction: column; } .manual-member-value { width: 100%; min-width: 0; } }
@media (max-width: 1250px) { .meeting-room-registration-layout { grid-template-columns: 1fr; } }

.company-table-wrap {
  width: 100%;
  overflow: visible;
  border: 1px solid #dfe3e8;
  background: #fff;
}

.company-list-table {
  width: 100%;
  min-width: 0;
  margin: -1px;
  table-layout: fixed;
}

.company-list-table th,
.company-list-table td {
  padding: 8px 5px;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: keep-all;
}

.company-list-table th:nth-child(1) {
  width: 4%;
}
.company-list-table th:nth-child(2) {
  width: 5%;
}
.company-list-table th:nth-child(3) {
  width: 9%;
}
.company-list-table th:nth-child(4) {
  width: 5%;
}
.company-list-table th:nth-child(5) {
  width: 6%;
}
.company-list-table th:nth-child(6) {
  width: 6%;
}
.company-list-table th:nth-child(7) {
  width: 9%;
}
.company-list-table th:nth-child(8) {
  width: 13%;
}
.company-list-table th:nth-child(9) {
  width: 6%;
}
.company-list-table th:nth-child(10) {
  width: 9%;
}
.company-list-table th:nth-child(11) {
  width: 13%;
}
.company-list-table th:nth-child(12) {
  width: 15%;
}

.company-list-table a {
  color: #176fa0;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.company-list-table tbody tr.contract-expiring td {
  background: #fff0f0;
}

.company-list-table tbody tr.contract-expiring td:nth-child(8) {
  color: #c83e3e;
  font-weight: 800;
}

.company-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  height: 25px;
  border-radius: 999px;
  padding: 0 9px;
  font-size: 13px;
  font-weight: 800;
}

.company-status.is-active {
  background: #e8f7f0;
  color: #25765b;
}

.company-status.is-planned {
  background: #eaf2ff;
  color: #376eae;
}

.company-status.is-graduated {
  background: #f2edff;
  color: #6850a5;
}

.company-status.is-left {
  background: #f1f2f4;
  color: #727b88;
}

.company-page-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}

.company-page-head .admin-title {
  margin-bottom: 8px;
}

.company-page-head p {
  margin: 0;
  color: #7c8694;
  font-size: 13px;
}

.company-record-id {
  display: inline-flex;
  align-items: center;
  height: 34px;
  border: 1px solid #b8d8df;
  border-radius: 999px;
  padding: 0 14px;
  background: #eff9fb;
  color: #256f80;
  font-size: 13px;
  font-weight: 800;
}

.company-record-id.is-new {
  border-color: #d9dfe6;
  background: #f5f6f8;
  color: #687386;
}

.company-detail-tabs {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  border-bottom: 2px solid #237f94;
  margin-bottom: 0;
}

.company-detail-tabs button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 126px;
  height: 43px;
  border: 1px solid #d7dde5;
  border-bottom: 0;
  border-radius: 8px 8px 0 0;
  padding: 0 18px;
  background: #f5f7f9;
  color: #697586;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
}

.company-detail-tabs button > span {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #dce2e8;
  color: #fff;
  font-size: 12px;
}

.company-detail-tabs button.is-active > span {
  background: #fff;
  color: #237f94;
}

.company-detail-tabs button.is-active {
  border-color: #237f94;
  background: #237f94;
  color: #fff;
}

.company-detail-panel {
  border: 1px solid #dfe4ea;
  border-top: 0;
  padding: 28px;
  background: #fff;
}

.company-detail-panel + .company-detail-panel {
  margin-top: 22px;
  border-top: 1px solid #dfe4ea;
}

.company-detail-panel.company-group-first {
  margin-top: 0;
  border-top: 0;
}

.company-detail-panel[hidden] {
  display: none;
}

.company-detail-panel h2 {
  margin: 0 0 22px;
  padding-bottom: 12px;
  border-bottom: 1px solid #edf0f3;
  color: #243043;
  font-size: 16px;
}

.company-form-grid {
  display: grid;
  gap: 20px 18px;
}

.company-form-grid.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.company-form-grid > label,
.company-form-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.company-form-grid > label.is-wide {
  grid-column: span 2;
}

.company-form-grid > label > span,
.company-form-field > span,
.company-create-files label > span {
  color: #3e4a5d;
  font-size: 13px;
  font-weight: 800;
}

.company-form-grid b,
.company-create-files b,
.company-file-list b {
  color: #d75552;
}

.company-form-grid input,
.company-form-grid select,
.company-form-grid textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  background: #fff;
  color: #303b4d;
  font: inherit;
}

.company-form-grid input,
.company-form-grid select {
  height: 38px;
  padding: 0 11px;
}

.company-form-grid textarea {
  min-height: 90px;
  padding: 10px 11px;
  resize: vertical;
}

.company-form-grid input[readonly] {
  background: #f4f6f8;
  color: #727c8b;
}

.company-choice-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
  min-height: 38px;
  border: 1px solid #e0e4e9;
  border-radius: 5px;
  padding: 0 11px;
  background: #fafbfc;
}

.company-choice-line label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #596578;
  font-size: 13px;
}

.company-choice-line input {
  width: auto;
  height: auto;
}

.company-address-line,
.company-inline-field {
  display: flex;
  align-items: center;
  gap: 7px;
}

.company-address-line input,
.company-inline-field input {
  flex: 1;
}

.company-subtitle {
  margin: 28px 0 12px;
  color: #344054;
  font-size: 16px;
}

.company-history-table th,
.company-history-table td {
  white-space: nowrap;
}

.company-contract-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  margin-bottom: 14px;
}

.company-contract-actions {
  display: flex;
  gap: 7px;
  flex-shrink: 0;
}

.company-contract-actions.is-vertical {
  flex-direction: column;
  align-items: stretch;
}
.company-form-actions.is-deposit-view .primary-button {
  display: none;
}

.company-contract-head > div {
  display: grid;
  gap: 4px;
}

.company-contract-head strong {
  color: #2f3a4d;
  font-size: 14px;
}

.company-contract-head span {
  color: #778293;
  font-size: 12px;
}

.company-contract-editor {
  margin-bottom: 16px;
  padding: 16px;
  border: 1px solid #d8e0e8;
  border-radius: 8px;
  background: #f8fafc;
}

.company-contract-editor[hidden] {
  display: none;
}

.company-contract-editor-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.company-contract-editor-head {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 12px;
}

.company-contract-editor-head strong {
  color: #273448;
  font-size: 15px;
}
.company-contract-editor-head span {
  color: #748094;
  font-size: 12px;
}

.company-contract-editor-grid label {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.company-contract-editor-grid label > span {
  color: #3e4a5d;
  font-size: 13px;
  font-weight: 800;
}

.company-contract-editor-grid b {
  color: #d75552;
}

.company-contract-editor-grid input,
.company-contract-editor-grid select {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 11px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  background: #fff;
  color: #303b4d;
  font: inherit;
}

.company-contract-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 14px;
}

.company-contract-head + .company-contract-editor + .company-history-table,
.company-contract-head + .company-history-table {
  margin-top: 8px;
}

.company-history-table {
  table-layout: fixed;
}

.company-history-table th,
.company-history-table td {
  padding: 8px 6px;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.company-history-table th:nth-child(1) {
  width: 5%;
}
.company-history-table th:nth-child(2) {
  width: 15%;
}
.company-history-table th:nth-child(3) {
  width: 8%;
}
.company-history-table th:nth-child(4) {
  width: 9%;
}
.company-history-table th:nth-child(5) {
  width: 21%;
}
.company-history-table th:nth-child(6) {
  width: 12%;
}
.company-history-table th:nth-child(7) {
  width: 12%;
}
.company-history-table th:nth-child(8) {
  width: 8%;
}
.company-history-table th:nth-child(9) {
  width: 10%;
}

.company-contract-history-table th:nth-child(1) { width: 4%; }
.company-contract-history-table th:nth-child(2) { width: 10%; }
.company-contract-history-table th:nth-child(3) { width: 5%; }
.company-contract-history-table th:nth-child(4) { width: 6%; }
.company-contract-history-table th:nth-child(5) { width: 8%; }
.company-contract-history-table th:nth-child(6) { width: 6%; }
.company-contract-history-table th:nth-child(7) { width: 13%; }
.company-contract-history-table th:nth-child(8) { width: 6%; }
.company-contract-history-table th:nth-child(9) { width: 9%; }
.company-contract-history-table th:nth-child(10) { width: 7%; }
.company-contract-history-table th:nth-child(11) { width: 10%; }
.company-contract-history-table th:nth-child(12) { width: 10%; }
.company-contract-history-table th:nth-child(13) { width: 6%; }

.company-contract-history-table th,
.company-contract-history-table td {
  line-height: 1.45;
  word-break: keep-all;
}

.company-contract-history-table td:last-child .white-button {
  display: block;
  width: 100%;
  min-width: 0;
  margin: 0 0 4px;
}
.contract-period-year {
  color: #d13b3b;
  font-weight: 800;
}
.company-history-table td:last-child .white-button {
  min-width: 44px;
  padding: 5px 8px;
}
.company-history-table td:last-child {
  white-space: nowrap;
}
.contract-delete-button {
  margin-left: 4px;
}

.company-deposit-table th:nth-child(1) {
  width: 16%;
}
.company-deposit-table th:nth-child(2) {
  width: 12%;
}
.company-deposit-table th:nth-child(3) {
  width: 12%;
}
.company-deposit-table th:nth-child(4) {
  width: 12%;
}
.company-deposit-table th:nth-child(5) {
  width: 12%;
}
.company-deposit-table th:nth-child(6) {
  width: 8%;
}
.company-deposit-table th:nth-child(7) {
  width: 7%;
}
.company-deposit-table th:nth-child(8) {
  width: 10.5%;
}
.company-deposit-table th:nth-child(9) {
  width: 10.5%;
}
.company-deposit-table th,
.company-deposit-table td {
  white-space: nowrap;
  word-break: normal;
  overflow-wrap: normal;
}
.company-history-tools {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}
.company-history-tools + .company-care-payment-table {
  margin-top: 10px;
}

.company-history-tools + .company-utility-payment-table {
  margin-top: 10px;
}

.company-deposit-payment-table {
  margin-top: 16px;
}
.company-deposit-payment-table,
.company-care-payment-table,
.company-utility-payment-table {
  table-layout: auto;
}
.company-deposit-payment-table th,
.company-deposit-payment-table td,
.company-care-payment-table th,
.company-care-payment-table td,
.company-utility-payment-table th,
.company-utility-payment-table td {
  padding-right: 8px;
  padding-left: 8px;
  white-space: nowrap;
  word-break: keep-all;
  overflow-wrap: normal;
}
.company-deposit-payment-table th:nth-child(1),
.company-care-payment-table th:nth-child(1),
.company-utility-payment-table th:nth-child(1) { min-width: 145px; }
.company-deposit-payment-table th:nth-child(2),
.company-care-payment-table th:nth-child(2),
.company-utility-payment-table th:nth-child(2) { min-width: 58px; }

.unit-price-modal[hidden] {
  display: none;
}
.unit-price-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 32px;
}
.unit-price-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(25, 33, 45, 0.48);
}
.unit-price-modal__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(1120px, 100%);
  max-height: min(760px, calc(100vh - 64px));
  border: 1px solid #ccd5e0;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(20, 30, 48, 0.22);
  overflow: hidden;
}
.unit-price-modal__head,
.unit-price-modal__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
}
.unit-price-modal__head {
  border-bottom: 1px solid #e0e6ed;
}
.unit-price-modal__head h2 {
  margin: 0 0 4px;
  font-size: 18px;
}
.unit-price-modal__head p {
  margin: 0;
  color: #66758a;
  font-size: 13px;
}
.unit-price-modal__body {
  max-height: 350px;
  overflow: auto;
  padding: 16px 22px;
}
.unit-price-preview-table {
  min-width: 920px;
}
.unit-price-preview-table thead th {
  position: sticky;
  top: -16px;
  z-index: 1;
}
.unit-price-preview-table td:nth-child(3),
.unit-price-preview-table td:nth-child(5) {
  white-space: nowrap;
}
.unit-price-modal__foot {
  border-top: 1px solid #e0e6ed;
  color: #66758a;
  font-size: 12px;
}
.unit-price-modal__foot > div {
  display: flex;
  gap: 7px;
  flex-shrink: 0;
}
.is-increase {
  color: #d13b3b;
  font-weight: 800;
}
.is-decrease {
  color: #1a6eb0;
  font-weight: 800;
}
.is-same {
  color: #718096;
}
.unit-price-edit-line { display: flex; align-items: center; gap: 7px; min-width: 0; white-space: nowrap; }
.unit-price-old { flex: 0 0 auto; color: #66758a; font-size: 12px; }
.unit-price-value-input {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 32px;
  padding: 0 8px;
  border: 1px solid #bbc8d7;
  border-radius: 4px;
  text-align: right;
  font: inherit;
  font-weight: 700;
}

.deposit-ledger-content .info-box {
  margin-top: 22px;
}
.deposit-ledger-content > .black-button {
  margin-top: 10px;
}
.deposit-ledger-content .search-table {
  margin-top: 26px;
}
.deposit-search-actions {
  display: flex;
  justify-content: center;
  margin: 16px 0 10px;
}
.deposit-search-actions .primary-button {
  min-width: 96px;
}
.deposit-ledger-content .list-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 48px;
  margin-top: 18px;
}
.deposit-ledger-content .list-toolbar > div {
  display: flex;
  align-items: center;
  gap: 7px;
}
.deposit-ledger-content .list-toolbar + .data-table {
  margin-top: 0;
}

.company-file-list {
  display: grid;
  gap: 9px;
}

.company-file-list > div {
  display: grid;
  grid-template-columns: 170px minmax(240px, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  min-height: 50px;
  border: 1px solid #e2e6eb;
  border-radius: 6px;
  padding: 7px 10px 7px 16px;
  background: #fafbfc;
}

.company-file-list strong,
.company-file-list span {
  font-size: 13px;
}

.company-file-list span {
  overflow: hidden;
  color: #747e8d;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.company-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 18px;
}
.company-form-actions.is-readonly-view { display: none; }
.company-performance-tabs { display: flex; flex-wrap: wrap; margin: 16px 0; border-bottom: 2px solid #5b32f2; }
.company-performance-tabs button { margin: 0; padding: 10px 14px; border: 1px solid #d7ddea; border-bottom: 0; background: #f8fafc; color: #41506a; font-weight: 700; }
.company-performance-tabs button + button { margin-left: -1px; }
.company-performance-tabs button.is-active { position: relative; z-index: 1; border-color: #5b32f2; background: #5b32f2; color: #fff; }
.company-performance-tabs b { margin-left: 3px; font-size: 12px; }
.company-performance-readonly { overflow-x: auto; }
.company-performance-table { min-width: 780px; }

.company-create-guide {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 22px;
  border: 1px solid #dfe5eb;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.company-create-guide > div {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 56px;
  border-right: 1px solid #e5e9ee;
  color: #86909f;
  font-size: 13px;
}

.company-create-guide > div:last-child {
  border-right: 0;
}

.company-create-guide > div.is-active {
  background: #edf8fa;
  color: #236f80;
}

.company-create-guide span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #dce2e8;
  color: #fff;
  font-weight: 800;
}

.company-create-guide .is-active span {
  background: #23859b;
}

.company-create-guide > div.is-complete {
  background: #f4faf7;
  color: #398061;
}

.company-create-guide .is-complete span {
  background: #4c9a76;
}

.company-create-files {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid #edf0f3;
}

.company-room-assignment-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

[data-create-step-panel="2"] .company-room-assignment-head {
  margin-top: 28px;
}

.company-representative-field {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  min-width: 0;
}

.company-representative-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.company-representative-head > div {
  display: grid;
  gap: 4px;
}

.company-representative-head strong {
  color: #3e4a5d;
  font-size: 13px;
}

.company-representative-head strong b,
.company-representative-row b {
  color: #d75552;
}

.company-representative-head span {
  color: #7a8493;
  font-size: 12px;
}

.company-representative-list {
  display: grid;
  gap: 9px;
}

.company-representative-row {
  display: grid;
  grid-template-columns:
    minmax(160px, 0.8fr) minmax(180px, 0.9fr) minmax(240px, 1.2fr)
    auto;
  gap: 12px;
  align-items: end;
  padding: 14px;
  border: 1px solid #dfe4ea;
  border-radius: 7px;
  background: #f8fafc;
}

.company-representative-row label {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.company-representative-row label > span {
  color: #3e4a5d;
  font-size: 13px;
  font-weight: 800;
}

.company-representative-row input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 11px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  background: #fff;
  color: #303b4d;
  font: inherit;
}

.representative-remove {
  height: 38px;
}

[data-representative-add],
[data-room-add],
[data-extra-file-add] {
  border-color: #e2b84c;
  background: #ffd966;
  color: #4f3a00;
  font-weight: 800;
}

[data-representative-add]:hover,
[data-room-add]:hover,
[data-extra-file-add]:hover {
  border-color: #c99a20;
  background: #ffcf3f;
}

.company-room-assignment-head > div {
  display: grid;
  gap: 4px;
}

.company-room-assignment-head strong {
  color: #2f3a4d;
  font-size: 14px;
}

.company-room-assignment-head span {
  color: #7a8493;
  font-size: 12px;
}

.company-room-assignment-list {
  display: grid;
  gap: 10px;
  margin-bottom: 22px;
}

.company-room-assignment-row {
  display: grid;
  grid-template-columns:
    minmax(180px, 1fr) minmax(160px, 0.8fr) minmax(230px, 1.2fr)
    auto;
  gap: 12px;
  align-items: end;
  padding: 15px;
  border: 1px solid #dfe4ea;
  border-radius: 7px;
  background: #f8fafc;
}

.company-room-assignment-row.is-contract-room {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.company-room-assignment-row.is-contract-room .room-assignment-remove {
  justify-self: end;
  min-width: 64px;
}

.company-room-assignment-row.is-occupancy-room {
  grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
}

.company-room-assignment-row label {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.company-room-assignment-row label > span {
  color: #3e4a5d;
  font-size: 13px;
  font-weight: 800;
}

.company-room-assignment-row label b {
  color: #d75552;
}

.company-room-assignment-row select,
.company-room-assignment-row input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 11px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  background: #fff;
  color: #303b4d;
  font: inherit;
}

.company-room-assignment-row select:disabled {
  background: #eef1f4;
  color: #8a93a1;
}

.room-assignment-remove {
  height: 38px;
}

.company-room-total {
  display: flex;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 2px;
}

.company-room-total > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-width: 250px;
  padding: 15px 18px;
  border: 1px solid #d9e0e8;
  border-radius: 7px;
  background: #f7f9fc;
}

.company-room-total span {
  color: #596578;
  font-size: 13px;
  font-weight: 700;
}

.company-room-total strong {
  color: var(--purple);
  font-size: 18px;
}

.room-detail-card .company-room-total {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}

.room-detail-card .company-room-total > div {
  min-width: 0;
}

.company-create-files label {
  display: grid;
  gap: 8px;
}

.company-create-files input {
  min-height: 38px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  padding: 6px;
  background: #fafbfc;
}

.company-create-files small {
  color: #778293;
  font-size: 11px;
}

.company-extra-files {
  margin-top: 22px;
  padding-top: 20px;
  border-top: 1px solid #edf0f3;
}

.company-extra-files-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.company-extra-files-head > div {
  display: grid;
  gap: 4px;
}

.company-extra-files-head strong {
  color: #3e4a5d;
  font-size: 13px;
}

.company-extra-files-head span {
  color: #7a8493;
  font-size: 12px;
}

.company-extra-file-list {
  display: grid;
  gap: 9px;
}

.company-extra-file-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto) auto;
  gap: 8px;
  align-items: center;
  padding: 10px;
  border: 1px solid #dfe4ea;
  border-radius: 6px;
  background: #f8fafc;
}

.company-extra-file-row > span {
  color: #667184;
  font-size: 12px;
  overflow-wrap: anywhere;
}

.company-extra-file-row input {
  min-width: 0;
  min-height: 38px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  padding: 6px;
  background: #fff;
}

.company-create-preview {
  border-top: 1px solid #dfe4ea;
}

.company-preview-guide {
  margin: -8px 0 20px;
  color: #778293;
  font-size: 13px;
}

.company-preview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.company-preview-grid article {
  display: grid;
  gap: 7px;
  min-height: 86px;
  padding: 16px;
  border: 1px solid #dfe4ea;
  border-radius: 7px;
  background: #f8fafc;
}

.company-preview-grid span {
  color: #778293;
  font-size: 12px;
  font-weight: 700;
}

.company-preview-grid strong {
  align-self: end;
  color: #263246;
  font-size: 15px;
  word-break: keep-all;
}

.company-preview-notice {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid #d8dff1;
  border-radius: 7px;
  background: #f5f6ff;
}

.company-preview-notice strong {
  color: var(--purple);
}

.company-preview-notice span {
  color: #596578;
  font-size: 13px;
}

.company-full-preview {
  display: grid;
  gap: 16px;
}

.company-preview-section {
  overflow: hidden;
  border: 1px solid #dfe4ea;
  border-radius: 8px;
  background: #fff;
}

.company-preview-section h3 {
  margin: 0;
  padding: 13px 16px;
  border-bottom: 1px solid #dfe4ea;
  background: #f4f6f9;
  color: #2f3a4d;
  font-size: 14px;
}

.company-preview-section dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.company-preview-section dl > div {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  min-height: 44px;
  border-bottom: 1px solid #edf0f3;
}

.company-preview-section dl > div:nth-child(odd) {
  border-right: 1px solid #edf0f3;
}

.company-preview-section dt,
.company-preview-section dd {
  margin: 0;
  padding: 11px 13px;
  line-height: 1.5;
}

.company-preview-section dt {
  background: #fafbfc;
  color: #5d6879;
  font-size: 12px;
  font-weight: 800;
}

.company-preview-section dd {
  color: #263246;
  font-size: 13px;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.company-preview-room-list {
  display: grid;
  overflow-x: auto;
}

.company-preview-room-list > div {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 48px;
  min-width: 1180px;
  padding: 10px 14px;
  border-bottom: 1px solid #edf0f3;
}

.company-preview-room-list strong {
  color: #4f5b6d;
  font-size: 12px;
}

.company-preview-room-list span {
  color: #263246;
  font-size: 13px;
  line-height: 1.5;
  white-space: nowrap;
}

.company-preview-room-total {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  padding: 14px;
  background: #f5f6ff;
}

.company-preview-room-total > strong {
  color: var(--purple);
  font-size: 13px;
}

.company-preview-room-total > div {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.company-preview-room-total span {
  padding: 7px 10px;
  border: 1px solid #d8dff1;
  border-radius: 5px;
  background: #fff;
  color: #3d4860;
  font-size: 12px;
  font-weight: 800;
}

/* 호실 관리 */
.room-admin-content {
  min-width: 0;
  padding-bottom: 60px;
}

.room-search-table {
  margin-top: 28px;
}

.room-detail-first-card {
  margin-top: 28px;
}

.room-detail-page-head {
  margin-bottom: 18px;
}

.room-detail-card .company-form-field input[hidden] {
  display: none;
}

.room-measure-line {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.room-measure-mode {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 9px;
}

.room-measure-mode label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #596578;
  font-size: 13px;
  white-space: nowrap;
}

.room-measure-mode input {
  width: auto;
  height: auto;
  margin: 0;
}

.room-unit-input {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
  gap: 7px;
}

.company-form-grid .room-unit-input input {
  flex: 1;
  width: auto;
}

.room-unit-input > span {
  flex: 0 0 auto;
  color: #596578;
  font-size: 13px;
  font-weight: 700;
}

.room-field-help {
  margin: 0;
  color: #347da2;
  font-size: 12px;
  line-height: 1.5;
}

.room-keyword-input {
  width: min(560px, 65%);
}

.room-list-table {
  width: 100%;
  table-layout: fixed;
}

.room-list-table th,
.room-list-table td {
  padding: 9px 7px;
  font-size: 13px;
  line-height: 1.45;
  vertical-align: middle;
  overflow-wrap: break-word;
  white-space: normal;
  word-break: keep-all;
}

.room-list-table th:nth-child(1) {
  width: 5%;
}
.room-list-table th:nth-child(2) {
  width: 13%;
}
.room-list-table th:nth-child(3) {
  width: 8%;
}
.room-list-table th:nth-child(4) {
  width: 8%;
}
.room-list-table th:nth-child(5) {
  width: 8%;
}
.room-list-table th:nth-child(6) {
  width: 7%;
}
.room-list-table th:nth-child(7) {
  width: 11%;
}
.room-list-table th:nth-child(8) {
  width: 10%;
}
.room-list-table th:nth-child(9) {
  width: 10%;
}
.room-list-table th:nth-child(10) {
  width: 10%;
}
.room-list-table th:nth-child(11) {
  width: 10%;
}

.room-list-table a {
  color: #176fa0;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.room-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  height: 25px;
  border-radius: 999px;
  padding: 0 9px;
  font-size: 13px;
  font-weight: 800;
}

.room-status.is-active {
  background: #e8f7f0;
  color: #25765b;
}

.room-status.is-empty {
  background: #eaf2ff;
  color: #376eae;
}

.room-status.is-reserved {
  background: #fff2dc;
  color: #a66a15;
}

.room-status.is-unavailable {
  background: #f1f2f4;
  color: #717b89;
}

.room-record-id {
  display: inline-flex;
  align-items: center;
  height: 34px;
  border: 1px solid #d9c7a5;
  border-radius: 999px;
  padding: 0 14px;
  background: #fff8eb;
  color: #80622b;
  font-size: 13px;
  font-weight: 800;
}

.room-detail-card {
  margin-bottom: 20px;
  border: 1px solid #dfe4ea;
  border-radius: 9px;
  padding: 26px 28px 28px;
  background: #fff;
  box-shadow: 0 5px 16px rgba(40, 56, 77, 0.035);
}

.room-detail-card h2 {
  margin: 0 0 22px;
  padding-bottom: 12px;
  border-bottom: 1px solid #edf0f3;
  color: #263246;
  font-size: 16px;
}

.room-detail-card .company-form-grid > label > span,
.room-detail-card .company-form-field > span,
.room-detail-card .company-choice-line label {
  font-size: 13px;
}

.room-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #edf0f3;
}

.room-card-head h2 {
  margin: 0 0 6px;
  padding: 0;
  border: 0;
}

.room-card-head p {
  margin: 0;
  color: #758092;
  font-size: 13px;
}

.room-deposit-table {
  table-layout: fixed;
}

.room-deposit-table th:nth-child(1) {
  width: 25%;
}
.room-deposit-table th:nth-child(2) {
  width: 18%;
}
.room-deposit-table th:nth-child(3) {
  width: auto;
}
.room-deposit-table th:nth-child(4) {
  width: 140px;
}

.room-deposit-table th,
.room-deposit-table td {
  font-size: 13px;
}

.room-deposit-table td:nth-child(3) {
  text-align: left;
}

.filter-caret {
  float: right;
  margin-left: 8px;
  color: #9aa1ad;
  transition: transform 0.15s ease;
}

.filter-button[aria-expanded="true"] .filter-caret {
  transform: rotate(180deg);
}

.room-deposit-table .white-button,
.room-deposit-table .danger-button {
  height: 27px;
  padding: 0 12px;
}

.room-deposit-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.room-deposit-editor {
  margin-top: 16px;
  border: 1px solid #cfdde2;
  border-radius: 8px;
  padding: 18px;
  background: #f6fafb;
}

.room-deposit-editor[hidden] {
  display: none;
}

.room-deposit-editor-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.room-deposit-editor-head strong {
  color: #263246;
  font-size: 14px;
}

.room-deposit-editor-head span {
  color: #7b8594;
  font-size: 12px;
}

.room-deposit-form-grid {
  display: grid;
  grid-template-columns: 1fr 1.35fr 1fr 2fr;
  gap: 14px;
  align-items: end;
}

.room-deposit-form-grid > label,
.room-deposit-end-field > label:first-child {
  display: grid;
  gap: 7px;
}

.room-deposit-form-grid label > span {
  color: #3e4a5d;
  font-size: 13px;
  font-weight: 800;
}

.room-deposit-form-grid label > span b {
  color: #d75552;
}

.room-deposit-form-grid input[type="date"],
.room-deposit-form-grid input[type="text"],
.room-deposit-form-grid input:not([type]),
.room-deposit-form-grid input[type="number"],
.room-deposit-form-grid select {
  width: 100%;
  height: 36px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
  padding: 0 10px;
  background: #fff;
}

.payment-editor-grid {
  grid-template-columns: 1.45fr 1fr 1fr 1fr;
  align-items: start;
}
.payment-editor-grid .payment-charge {
  grid-column: span 2;
}
.payment-editor-grid .payment-note {
  grid-column: span 2;
}
.payment-files {
  display: grid;
  gap: 7px;
  grid-column: span 2;
}
.payment-files > span {
  color: #3e4a5d;
  font-size: 13px;
  font-weight: 800;
}
.payment-files > .payment-file-list {
  display: grid;
  gap: 6px;
}
.payment-file-row {
  display: flex;
  align-items: center;
  gap: 7px;
  min-height: 32px;
}
.payment-files input[type="file"] {
  max-width: 310px;
  font-size: 12px;
}
.payment-files > .white-button {
  justify-self: start;
}
[data-charge-type-other][hidden] {
  display: none !important;
}
[data-other][hidden] {
  display: none !important;
}

.billing-notice-sheet {
  position: relative;
  max-width: 980px;
  margin: 24px auto;
  padding: 42px 34px 32px;
  border: 1px solid #7d8794;
  background: #fff;
  color: #111;
}
.billing-notice-number {
  position: absolute;
  top: 16px;
  left: 34px;
  color: #586578;
  font-size: 12px;
  font-weight: 700;
}
.billing-notice-sheet h2 {
  margin: 0 0 42px;
  text-align: center;
  font-size: 27px;
  letter-spacing: -0.6px;
}
.billing-notice-company,
.billing-notice-items {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
.billing-notice-company th,
.billing-notice-company td,
.billing-notice-items th,
.billing-notice-items td {
  padding: 10px 12px;
  border: 1px solid #313131;
  text-align: center;
}
.billing-notice-company th,
.billing-notice-items th {
  background: #fafafa;
  font-weight: 800;
}
.billing-notice-company th {
  width: 15%;
}
.billing-notice-company td {
  width: 35%;
}
.billing-notice-items {
  margin-top: 14px;
}
.billing-notice-items td {
  min-height: 40px;
}
.billing-notice-total td {
  color: #d11b1b;
  background: #e8e8e8;
  font-size: 18px;
  font-weight: 800;
}
.billing-notice-items th:nth-child(1) {
  width: 16%;
}
.billing-notice-items th:nth-child(2) {
  width: 42%;
}
.billing-notice-items th:nth-child(3) {
  width: 16%;
}
.billing-notice-items th:nth-child(4) {
  width: 26%;
}
.billing-notice-total td {
  padding: 9px 12px;
  letter-spacing: 5px;
}
.billing-notice-total td:last-child {
  letter-spacing: 0;
}
.billing-notice-after td {
  color: #888;
  background: #fafafa;
}
.billing-notice-after td:nth-child(2) {
  color: #6f7783;
  font-size: 13px;
}
.billing-notice-after td:nth-child(3) {
  color: #555;
  font-weight: 800;
}
.billing-notice-due-date {
  color: #e02828;
}
.billing-notice-guide {
  margin-top: 20px;
  line-height: 1.8;
}
.billing-notice-guide p {
  margin: 2px 0;
}
.billing-notice-guide p:last-child {
  color: #1549c5;
}
.billing-notice-sign {
  margin-top: 44px;
  text-align: center;
  line-height: 1.8;
}
.billing-notice-sign strong {
  font-size: 26px;
}
.charge-sequence-button {
  min-width: 28px;
  border: 0;
  background: transparent;
  color: #1a71ad;
  font: inherit;
  font-weight: 800;
  text-decoration: underline;
  cursor: pointer;
}

.room-deposit-form-grid input:disabled {
  background: #eef1f4;
  color: #8c95a2;
}

.room-deposit-end-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
}

.room-deposit-end-field .check-row {
  height: 36px;
  margin: 0;
}

.room-deposit-editor-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 14px;
}

.admin-content > .black-button {
  margin-bottom: 14px;
}
.invoice-preview-modal {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(18, 28, 45, 0.48);
}
.invoice-preview-modal[hidden] {
  display: none;
}
.invoice-preview-dialog {
  width: min(860px, 100%);
  max-height: calc(100vh - 48px);
  overflow: auto;
  padding: 26px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}
.invoice-preview-dialog h2 {
  margin: 0 0 16px;
  font-size: 21px;
}
.invoice-preview-dialog .billing-notice-sheet {
  margin: 0;
}
.invoice-preview-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 18px;
}
.utility-bill {
  width: min(1320px, 100%);
}
.utility-bill-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.utility-bill-grid section {
  border: 2px solid #333;
  text-align: center;
}
.utility-bill-grid h3 {
  margin: 0;
  padding: 12px;
  font-size: 20px;
  border-bottom: 1px solid #333;
}
.utility-bill-grid table {
  width: 100%;
  border-collapse: collapse;
}
.utility-bill-grid th,
.utility-bill-grid td {
  padding: 10px 6px;
  border: 1px solid #444;
}
.utility-bill-grid .sum th,
.utility-bill-grid .sum td {
  color: #f11;
  background: #eee;
  font-size: 18px;
}
.utility-bill-grid p {
  margin: 20px 10px;
  line-height: 1.7;
}
.utility-sign {
  margin-top: 80px !important;
}
.utility-sign img {
  display: inline-block;
  width: 60px;
  height: auto;
  margin-left: 12px;
  vertical-align: middle;
}
.utility-bank {
  margin-top: 34px !important;
}
.utility-bank small {
  display: block;
  margin-top: 20px;
}
.utility-due {
  color: #e02828;
  font-weight: 800;
}
.bulk-charge-button {
  border-color: #2e9d6c;
  background: #39a875;
  color: #fff;
}
.bulk-charge-button:hover {
  background: #278b5f;
}
.bulk-charge-result {
  max-height: 300px;
  overflow-y: auto;
  margin-top: 14px;
  border: 1px solid #d9e1ea;
}
.bulk-charge-result .data-table {
  table-layout: fixed;
}
.bulk-charge-result td {
  white-space: nowrap;
}
.bulk-invoice-button {
  background: #243047;
  border-color: #243047;
  color: #fff;
}
.bulk-invoice-button:hover {
  background: #172033;
}
.bulk-invoice-date {
  margin: 14px 0;
  padding: 15px;
  border: 1px solid #d9e1ea;
  border-radius: 7px;
  background: #f8fafc;
}
.bulk-invoice-date label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-weight: 700;
}
.bulk-invoice-date input {
  width: 180px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid #ccd4de;
  border-radius: 5px;
}
.bulk-charge-modal {
  position: fixed;
  inset: 0;
  z-index: 55;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(18, 28, 45, 0.48);
}
.bulk-charge-modal[hidden] {
  display: none;
}
.bulk-charge-dialog {
  width: min(960px, 100%);
  padding: 26px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}
.bulk-charge-dialog h2 {
  margin: 0 0 8px;
  font-size: 21px;
}
.bulk-charge-dialog > p {
  margin: 0 0 20px;
  color: #687386;
}
.bulk-charge-step {
  display: grid;
  grid-template-columns: 30px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 15px 0;
  border-top: 1px solid #e4e8ee;
}
.bulk-charge-step strong {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #5738ff;
  color: #fff;
  font-size: 12px;
}
.bulk-charge-step p {
  margin: 4px 0 0;
  color: #6d7786;
  font-size: 13px;
}
.bulk-charge-upload {
  margin: 14px 0;
  padding: 16px;
  border: 1px dashed #bfc9d7;
  border-radius: 7px;
  background: #f8fafc;
}
.bulk-charge-upload input {
  width: 100%;
  margin-top: 10px;
}
.bulk-charge-actions {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 18px;
}

.room-state-guide {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 18px;
  align-items: center;
  border: 1px solid #dce7eb;
  border-radius: 8px;
  padding: 16px 18px;
  background: #f3fafb;
}

.room-state-guide strong {
  color: #276c7c;
  font-size: 13px;
}

.room-state-guide p {
  margin: 0;
  color: #697686;
  font-size: 13px;
  line-height: 1.6;
}

/* 소통 관리 */
.communication-content {
  min-width: 0;
  padding-bottom: 60px;
}

.communication-search-table {
  margin-top: 28px;
}

.communication-keyword {
  width: min(560px, 65%);
}

.communication-notice-table,
.communication-inquiry-table {
  width: 100%;
  table-layout: fixed;
}

.communication-notice-table th,
.communication-notice-table td,
.communication-inquiry-table th,
.communication-inquiry-table td {
  padding: 8px 5px;
  font-size: 13px;
  overflow-wrap: anywhere;
  white-space: normal;
  word-break: keep-all;
}

.communication-notice-table th:nth-child(1) {
  width: 4%;
}
.communication-notice-table th:nth-child(2) {
  width: 4.5%;
}
.communication-notice-table th:nth-child(3) {
  width: 3.5%;
}
.communication-notice-table th:nth-child(4) {
  width: 6%;
}
.communication-notice-table th:nth-child(5) {
  width: 9%;
}
.communication-notice-table th:nth-child(6) {
  width: 20%;
}
.communication-notice-table th:nth-child(7) {
  width: 5%;
}
.communication-notice-table th:nth-child(8) {
  width: 6.5%;
}
.communication-notice-table th:nth-child(9) {
  width: 10%;
}
.communication-notice-table th:nth-child(10) {
  width: 5%;
}
.communication-notice-table th:nth-child(11) {
  width: 5%;
}
.communication-notice-table th:nth-child(12) {
  width: 10.5%;
}
.communication-notice-table th:nth-child(13) {
  width: 11%;
}

.communication-inquiry-table th:nth-child(1) {
  width: 4%;
}
.communication-inquiry-table th:nth-child(2) {
  width: 7%;
}
.communication-inquiry-table th:nth-child(3) {
  width: 9%;
}
.communication-inquiry-table th:nth-child(4) {
  width: 21%;
}
.communication-inquiry-table th:nth-child(5) {
  width: 10%;
}
.communication-inquiry-table th:nth-child(6) {
  width: 8%;
}
.communication-inquiry-table th:nth-child(7) {
  width: 10%;
}
.communication-inquiry-table th:nth-child(8) {
  width: 11%;
}
.communication-inquiry-table th:nth-child(9) {
  width: 9%;
}
.communication-inquiry-table th:nth-child(10) {
  width: 11%;
}

.communication-notice-table a,
.communication-inquiry-table a {
  color: #176fa0;
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.communication-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 54px;
  height: 24px;
  border-radius: 999px;
  padding: 0 8px;
  font-size: 13px;
  font-weight: 800;
}

.communication-status.is-visible,
.communication-status.is-complete {
  background: #e8f7f0;
  color: #25765b;
}

.communication-status.is-hidden {
  background: #f1f2f4;
  color: #717b89;
}

.communication-status.is-waiting {
  background: #fff2dc;
  color: #a66a15;
}

.communication-form {
  margin-top: 0;
}

.communication-form th {
  width: 190px;
}

.communication-form td {
  min-height: 42px;
}

.communication-form input[type="text"],
.communication-form input[type="date"],
.communication-form select,
.communication-form textarea {
  box-sizing: border-box;
  border: 1px solid #cfd5df;
  background: #fff;
  font: inherit;
}

.communication-wide-input {
  width: min(820px, 100%);
}

.communication-medium-input {
  width: min(360px, 100%);
}

.communication-order-select {
  width: 130px;
  margin-left: 8px;
}

.communication-time-select {
  width: 70px;
}

.communication-readonly {
  color: #4f5d70;
}

.communication-help {
  margin: 7px 0 0 10px;
  color: #347da2;
  font-size: 13px;
  line-height: 1.55;
}

.communication-help-block {
  margin-left: 0;
}

.communication-form tr[hidden] {
  display: none;
}

.communication-editor {
  overflow: hidden;
  width: 100%;
  border: 1px solid #cfd5df;
  background: #fff;
}

.communication-editor-toolbar {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 7px 8px;
  border-bottom: 1px solid #d9dee6;
  background: #f4f5f7;
}

.communication-editor-toolbar select {
  width: 84px;
  height: 26px;
  padding: 0 7px;
}

.communication-editor-toolbar button {
  min-width: 28px;
  height: 26px;
  border: 1px solid #cbd2dc;
  background: #fff;
  cursor: pointer;
}

.communication-editor-body {
  min-height: 260px;
  padding: 18px 20px;
  color: #39465a;
  line-height: 1.75;
}

.communication-editor-body.is-empty {
  color: #9aa3af;
}

.communication-file-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.communication-file-list {
  display: grid;
  gap: 8px;
}

.communication-file-row span {
  min-width: 320px;
  color: #176fa0;
}

.communication-file-add {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(220px, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.communication-file-add input[type="file"],
.communication-file-add input[type="text"] {
  width: 100%;
}

.communication-fixed-order {
  width: 140px;
  margin-left: 8px;
}

.communication-editor-toolbar[hidden],
.communication-fixed-order[hidden] {
  display: none;
}

.communication-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 18px;
}

.communication-actions.is-right {
  justify-content: flex-end;
  gap: 6px;
}

.communication-read-box {
  min-height: 90px;
  border: 1px solid #dfe4ea;
  padding: 16px;
  background: #f8fafb;
  color: #4d596b;
  line-height: 1.7;
}

.communication-answer {
  width: 100%;
  min-height: 150px;
  padding: 12px;
  resize: vertical;
}
.tenant-resource-list-tools { grid-template-columns: 1fr auto; }
.tenant-inquiry-form .company-form-grid > label.tenant-inquiry-content,
[data-tenant-portal-page="inquiry-detail"] .company-form-grid > label.tenant-inquiry-content { grid-column: 1 / -1; }
.tenant-inquiry-form textarea,
[data-tenant-portal-page="inquiry-detail"] textarea { min-height: 210px; resize: vertical; }
.tenant-inquiry-search-actions { display: flex; justify-content: flex-end; gap: 10px; }
[data-inquiry-files] { align-items: flex-start; }
[data-inquiry-files] input[type="file"] { margin-bottom: 7px; }
[data-inquiry-files] .warning-button { margin-top: 4px; }
.notice-pinned td {
  background: #fff8e7 !important;
  border-top: 2px solid #e8b14a !important;
  border-bottom: 2px solid #e8b14a !important;
}
.notice-pin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  min-width: 24px;
  font-size: 16px;
}
[data-tenant-portal-page="notice-detail"] .company-form-grid > label.tenant-notice-content {
  grid-column: 1 / -1;
}
[data-tenant-portal-page="notice-detail"] .tenant-notice-content textarea {
  width: 100%;
  min-height: 300px;
  resize: vertical;
}
[data-tenant-portal-page="submission-detail"] .company-form-grid > label.tenant-submission-guide,
[data-tenant-portal-page="submission-edit"] .company-form-grid > label.tenant-submission-guide {
  grid-column: 1 / -1;
}
[data-tenant-portal-page="submission-detail"] .tenant-submission-guide textarea,
[data-tenant-portal-page="submission-edit"] .tenant-submission-guide textarea {
  width: 100%;
  min-height: 260px;
  resize: vertical;
}
.tenant-company-section + .tenant-company-section {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line, #dbe3ef);
}
.tenant-company-section h3 {
  margin: 0 0 18px;
  padding: 11px 14px;
  border-left: 4px solid #5b36f2;
  border-radius: 0 7px 7px 0;
  background: #f3f0ff;
  color: #2d1c75;
  font-size: 17px;
}
.tenant-company-section > .room-card-head {
  margin-bottom: 14px;
  padding: 11px 14px;
  border-left: 4px solid #5b36f2;
  border-radius: 0 7px 7px 0;
  background: #f3f0ff;
}
.tenant-company-section > .room-card-head h3 { margin: 0 0 4px; padding: 0; border: 0; background: transparent; }
.tenant-company-introduction { grid-column: 1 / -1; }
.tenant-company-introduction textarea { width: 100%; min-height: 150px; resize: vertical; }
.inline-input-row { display: flex; gap: 8px; }
.inline-input-row input { flex: 1; }
.company-representative-list { display: grid; gap: 10px; }
.company-representative-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 12px;
  align-items: end;
  padding: 16px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #f8fafc;
}
.company-representative-row label { display: grid; gap: 7px; }
.company-representative-row label span { font-weight: 700; }
.company-representative-row .white-button { min-width: 56px; }
.tenant-company-attachments { width: 100%; }
.tenant-attachment-list { display: grid; gap: 9px; }
.tenant-attachment-list > div {
  display: grid;
  grid-template-columns: 170px minmax(220px, 1fr) minmax(220px, 280px) auto;
  align-items: center;
  gap: 14px;
  min-height: 58px;
  padding: 10px 14px;
  border: 1px solid #dbe3ef;
  border-radius: 8px;
  background: #f8fafc;
}
.tenant-attachment-list strong { color: #172b4d; }
.tenant-attachment-list span { color: #60738d; }
.tenant-attachment-list input[type="file"] { max-width: 280px; }
.tenant-attachment-extra {
  grid-column: 2 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding-top: 4px;
}
.tenant-contract-readonly .room-card-head {
  margin-top: 26px;
  padding-top: 20px;
  border-top: 1px solid #dbe3ef;
}
.tenant-contract-readonly .data-table td { white-space: normal; }
.tenant-contract-readonly .contract-emphasis { color: #e24b44; font-weight: 800; }
.tenant-deposit-readonly .deposit-outstanding td { background: #fff0f0; }
.tenant-deposit-readonly .deposit-outstanding td:nth-child(8) { color: #d94040; font-weight: 800; }
.tenant-history-actions { display: flex; justify-content: flex-end; margin-bottom: 14px; }
.tenant-deposit-readonly .room-card-head { margin-bottom: 14px; }
.tenant-deposit-payment-history { margin-top: 20px; }
.tenant-care-fee-readonly .pager,
.tenant-care-payment-history .pager { margin-top: 18px; }
.tenant-care-payment-history { margin-top: 20px; }
.tenant-care-fee-readonly .care-outstanding td,
.tenant-care-payment-history .care-outstanding td { background: #fff0f0; }
.tenant-care-fee-readonly .care-outstanding td:nth-child(7),
.tenant-care-payment-history .care-outstanding td:nth-child(5) { color: #d94040; font-weight: 800; }
.tenant-utility-payment-history { margin-top: 20px; }
.tenant-utility-readonly .pager,
.tenant-utility-payment-history .pager { margin-top: 18px; }
.tenant-utility-readonly .utility-outstanding td { background: #fff0f0; }
.tenant-utility-readonly .utility-outstanding td:nth-child(9) { color: #d94040; font-weight: 800; }
.tenant-meeting-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.tenant-meeting-card { overflow: hidden; border: 1px solid #dbe3ef; border-radius: 12px; background: #fff; box-shadow: 0 8px 18px rgba(28, 43, 66, 0.06); }
.tenant-meeting-card > img { display: block; width: 100%; height: 240px; object-fit: cover; }
.tenant-meeting-body { padding: 22px; }
.tenant-meeting-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.tenant-meeting-title h2 { margin: 0; color: #172b4d; font-size: 21px; }
.tenant-meeting-title span { padding: 6px 10px; border-radius: 14px; background: #e8f7f2; color: #137f63; font-size: 13px; font-weight: 800; }
.tenant-meeting-body > p { min-height: 42px; color: #60738d; line-height: 1.6; }
.tenant-meeting-body dl { display: grid; gap: 9px; margin: 18px 0; }
.tenant-meeting-body dl > div { display: grid; grid-template-columns: 82px 1fr; gap: 10px; }
.tenant-meeting-body dt { color: #52657d; font-weight: 800; }
.tenant-meeting-body dd { margin: 0; color: #1f304a; line-height: 1.5; }
.tenant-meeting-body .primary-button { width: 100%; }
.tenant-meeting-history { margin-top: 24px; }
.tenant-meeting-history .pager { margin-top: 18px; }
.tenant-meeting-book textarea { width: 100%; min-height: 150px; resize: vertical; }
.tenant-time-slots { display: flex; flex-wrap: wrap; gap: 10px; }
.tenant-time-slots label { display: inline-flex; align-items: center; gap: 6px; padding: 9px 11px; border: 1px solid #dbe3ef; border-radius: 6px; background: #f8fafc; }
.meeting-request-list-actions { display: flex; align-items: center; gap: 10px; }
.meeting-weekly-usage { display: grid; grid-template-columns: auto minmax(76px, 1fr) auto; align-items: center; gap: 7px; white-space: nowrap; }
.meeting-weekly-usage > span { color: #334a67; font-size: 12px; }
.meeting-weekly-usage > span b { color: #5638dc; font-size: 14px; }
.meeting-weekly-usage > div { height: 7px; overflow: hidden; border-radius: 999px; background: #e8edf4; }
.meeting-weekly-usage > div i { display: block; height: 100%; border-radius: inherit; background: #6a4df4; }
.meeting-weekly-usage small { color: #6f7f94; font-size: 11px; }
.meeting-weekly-usage.is-caution > div i { background: #e5a42d; }
.meeting-weekly-usage.is-caution > span b { color: #bc7a00; }
.meeting-weekly-usage.is-full > div i { background: #e05656; }
.meeting-weekly-usage.is-full > span b,
.meeting-weekly-usage.is-full small { color: #d24040; }
.meeting-purpose { position: relative; display: block; max-width: 164px; overflow: hidden; color: #45566d; text-overflow: ellipsis; white-space: nowrap; cursor: help; }
.meeting-purpose::after { position: absolute; z-index: 30; bottom: calc(100% + 8px); left: 0; display: none; width: max-content; max-width: 280px; padding: 9px 11px; border-radius: 5px; background: #243042; box-shadow: 0 6px 16px rgba(21, 32, 49, .18); color: #fff; content: attr(data-tooltip); font-size: 12px; font-weight: 500; line-height: 1.5; text-align: left; white-space: normal; }
.meeting-purpose:hover::after { display: block; }
.meeting-purpose-tooltip[hidden] { display: none; }
.meeting-purpose-tooltip { position: fixed; z-index: 500; max-width: 300px; padding: 9px 11px; border-radius: 5px; background: #243042; box-shadow: 0 6px 16px rgba(21, 32, 49, .22); color: #fff; font-size: 12px; line-height: 1.5; pointer-events: none; }
[data-settlement-list="deposit-ledger"] tbody tr:has(.room-status.is-reserved) td,
[data-settlement-list="deposit-ledger"] tbody tr:has(.room-status.is-unavailable) td {
  background: #fff0f0 !important;
}
[data-settlement-list="deposit-ledger"] tbody tr:has(.room-status.is-reserved) td:nth-child(9),
[data-settlement-list="deposit-ledger"] tbody tr:has(.room-status.is-unavailable) td:nth-child(9) {
  color: #d94040;
  font-weight: 800;
}

/* 입주기업 포털 대시보드 */
.tenant-portal-dashboard { padding: 28px 30px 42px; background: #f4f6fa; }
.tenant-portal-dashboard .company-page-head { margin-bottom: 18px; }
.tenant-dashboard-kicker { margin: 0 0 5px !important; color: #258ca5 !important; font-size: 10px !important; font-weight: 800; letter-spacing: 1.3px; }
.tenant-dashboard-alert { display: flex; align-items: center; gap: 14px; margin: 0 0 18px; padding: 14px 17px; border: 1px solid #f1c8c6; border-radius: 8px; background: #fff6f5; }
.tenant-alert-icon { display: grid; width: 28px; height: 28px; flex: 0 0 28px; place-items: center; border-radius: 50%; background: #e8605d; color: #fff; font-size: 17px; font-weight: 900; }
.tenant-dashboard-alert strong, .tenant-dashboard-alert span { display: block; }
.tenant-dashboard-alert strong { color: #b13f3b; font-size: 14px; }
.tenant-dashboard-alert span { margin-top: 3px; color: #7c6b6b; font-size: 12px; }
.tenant-dashboard-alert .danger-button { margin-left: auto; white-space: nowrap; }
.tenant-dashboard-overview { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.tenant-dashboard-overview article, .tenant-dashboard-panel { min-width: 0; border: 1px solid #dfe6ef; border-radius: 9px; background: #fff; box-shadow: 0 5px 14px rgba(35, 47, 69, .035); }
.tenant-dashboard-overview article { display: flex; min-height: 165px; flex-direction: column; padding: 18px; }
.tenant-card-label { color: #8290a3; font-size: 12px; font-weight: 800; }
.tenant-dashboard-overview strong { margin: 14px 0 8px; color: #1f2e47; font-size: 19px; line-height: 1.36; letter-spacing: -.5px; }
.tenant-dashboard-overview em { min-height: 18px; color: #8a96a8; font-size: 12px; font-style: normal; }
.tenant-dashboard-overview em b { color: #e0605c; font-weight: 800; }
.tenant-dashboard-overview button { width: fit-content; margin: auto 0 0; padding: 0; border: 0; background: transparent; color: #5631f3; font-size: 12px; font-weight: 800; cursor: pointer; }
.tenant-dashboard-overview .is-payment { border-color: #f1d7d5; background: linear-gradient(145deg, #fff 60%, #fff6f5); }
.tenant-dashboard-overview .is-payment strong { color: #df5d59; }
.tenant-dashboard-overview .is-work { border-color: #d9d1ff; background: linear-gradient(145deg, #fff 60%, #f7f5ff); }
.tenant-dashboard-overview .is-work strong { color: #5b32f2; }
.tenant-dashboard-grid { display: grid; grid-template-columns: 1.38fr 1fr 1fr; gap: 14px; margin-top: 14px; }
.tenant-dashboard-bottom { grid-template-columns: 1fr; }
.tenant-dashboard-panel { padding: 18px; }
.tenant-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 13px; border-bottom: 1px solid #e9edf3; }
.tenant-panel-head span { display: block; margin-bottom: 4px; color: #77859a; font-size: 10px; font-weight: 900; letter-spacing: .85px; }
.tenant-panel-head h2 { margin: 0; color: #24324a; font-size: 16px; }
.tenant-panel-head h2 em { color: #7d899b; font-size: 11px; font-style: normal; font-weight: 700; }
.tenant-deadline-list, .tenant-billing-list, .tenant-simple-list { margin: 0; padding: 0; list-style: none; }
.tenant-deadline-list li { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 64px; border-bottom: 1px solid #edf0f4; }
.tenant-deadline-list li:last-child, .tenant-billing-list li:last-child, .tenant-simple-list li:last-child { border-bottom: 0; }
.tenant-deadline-list > li > b { display: grid; height: 25px; place-items: center; border-radius: 4px; font-size: 11px; }
.tenant-deadline-list .is-danger > b { background: #fff0ef; color: #dd514e; }.tenant-deadline-list .is-warning > b { background: #fff6e9; color: #bd7a11; }.tenant-deadline-list .is-info > b { background: #eef7fa; color: #268da4; }
.tenant-deadline-list strong, .tenant-deadline-list span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.tenant-deadline-list strong { color: #34425a; font-size: 12px; }.tenant-deadline-list span { margin-top: 4px; color: #8591a2; font-size: 11px; }
.tenant-billing-total { display: flex; align-items: baseline; justify-content: space-between; margin: 15px 0 6px; }.tenant-billing-total span { color: #78869a; font-size: 12px; }.tenant-billing-total strong { color: #dd605c; font-size: 22px; }
.tenant-billing-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; padding: 10px 0; border-bottom: 1px solid #edf0f4; color: #526075; font-size: 12px; }.tenant-billing-list b { font-size: 11px; }.tenant-billing-list em { color: #617085; font-style: normal; }.tenant-billing-list .is-complete { color: #249772; }.tenant-billing-list .is-danger { color: #df5e59; }
.tenant-meeting-next { display: flex; gap: 13px; padding: 18px 0 12px; }.tenant-meeting-next time { display: flex; gap: 6px; align-items: center; padding-right: 13px; border-right: 1px solid #e4e9f0; }.tenant-meeting-next time b { color: #5631f3; font-size: 30px; }.tenant-meeting-next time span { color: #728096; font-size: 11px; line-height: 1.35; }.tenant-meeting-next strong, .tenant-meeting-next span, .tenant-meeting-next em { display: block; }.tenant-meeting-next strong { color: #304059; font-size: 14px; }.tenant-meeting-next span { margin: 4px 0; color: #728096; font-size: 12px; }.tenant-meeting-next em { color: #9b7a1c; font-size: 11px; font-style: normal; }
.tenant-mini-progress { height: 8px; overflow: hidden; border-radius: 8px; background: #edf0f5; }.tenant-mini-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #5b32f2, #8e74fb); }.tenant-panel-foot { margin: 10px 0 0; color: #77859a; font-size: 11px; }.tenant-panel-foot b { color: #5631f3; }
.tenant-simple-list li { display: flex; align-items: center; gap: 10px; min-height: 39px; border-bottom: 1px solid #edf0f4; }.tenant-simple-list button { overflow: hidden; flex: 1; padding: 0; border: 0; background: transparent; color: #42516a; font-size: 12px; font-weight: 700; text-align: left; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }.tenant-simple-list time { color: #8b97a8; font-size: 11px; }.tenant-status { padding: 4px 7px; border-radius: 11px; font-size: 10px; white-space: nowrap; }.tenant-status.waiting { background: #fff0dc; color: #bd7510; }.tenant-status.done { background: #e9f7f0; color: #258b68; }
.tenant-shortcut-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; padding-top: 14px; }.tenant-shortcut-grid button { min-height: 33px; border: 1px solid #dce3ee; border-radius: 4px; background: #fff; color: #536179; font-size: 11px; font-weight: 700; cursor: pointer; }.tenant-shortcut-grid button:hover, .tenant-simple-list button:hover { color: #5631f3; }
@media (max-width: 1180px) { .tenant-dashboard-overview, .tenant-dashboard-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .tenant-dashboard-bottom { grid-template-columns: 1fr; } .tenant-deadline-panel { grid-column: span 2; } }
@media (max-width: 760px) { .tenant-portal-dashboard { padding: 18px; }.tenant-dashboard-overview, .tenant-dashboard-grid, .tenant-dashboard-bottom { grid-template-columns: 1fr; }.tenant-deadline-panel { grid-column: auto; }.tenant-dashboard-alert { align-items: flex-start; flex-wrap: wrap; }.tenant-dashboard-alert .danger-button { margin-left: 42px; }.tenant-dashboard-overview article { min-height: 140px; } }
