html.local-page-enhanced body {
  --local-bg: #eef1f4;
  --local-surface: #ffffff;
  --local-ink: #1d232b;
  --local-muted: #68727d;
  --local-line: #d7dde4;
  --local-brand: #d8242f;
  --local-brand-dark: #951720;
  --local-shadow: 0 12px 30px rgba(29, 35, 43, 0.1);
  background: var(--local-bg) !important;
  color: var(--local-ink);
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  padding-top: 54px !important;
}

html.local-page-enhanced body > .min-h-screen > header:not(.local-brand-shell),
html.local-page-enhanced body > .min-h-screen > footer,
html.local-page-enhanced #header,
html.local-page-enhanced .fix_header,
html.local-page-enhanced .quick_header,
html.local-page-enhanced .mobile_heder,
html.local-page-enhanced .footer,
html.local-page-enhanced .fix_mobile,
html.local-page-enhanced .mm_mobile_menu,
html.local-page-enhanced .e1,
html.local-page-enhanced .login_white,
html.local-page-enhanced .widgetPoint,
html.local-page-enhanced .userMenu,
html.local-page-enhanced .wrap_login,
html.local-page-enhanced .account,
html.local-page-enhanced .top_login,
html.local-page-enhanced .logo_min,
html.local-page-enhanced .content_banner_bottom,
html.local-page-enhanced #scrollUp,
html.local-page-enhanced #bd_font_install,
html.local-page-enhanced .fontcheckWrp,
html.local-page-enhanced .wfsr,
html.local-page-enhanced [data-local-floating-ad-hidden="true"] {
  display: none !important;
}

html.local-page-enhanced img.popupimage {
  pointer-events: none !important;
}

html.local-page-enhanced .in_body,
html.local-page-enhanced .ec .in_body,
html.local-page-enhanced .ce .in_body {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.local-tools {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 2147483647;
  display: grid;
  grid-template-columns: auto auto minmax(180px, 420px);
  gap: 8px;
  align-items: center;
  min-height: 54px;
  border-bottom: 1px solid #d7dde4;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 22px rgba(29, 35, 43, 0.12);
  padding: 8px 14px;
  color: var(--local-ink);
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  box-sizing: border-box;
}

.local-tools *,
.portal-local-toast {
  box-sizing: border-box;
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

.local-tools a,
.local-tools button {
  display: inline-grid;
  place-items: center;
  min-height: 34px;
  border: 1px solid #d7dde4;
  border-radius: 6px;
  background: #fff;
  color: #151a21;
  padding: 0 12px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
}

.local-tools-home {
  border-color: #d8242f !important;
  background: #d8242f !important;
  color: #fff !important;
}

.local-tools form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 64px;
  min-width: 0;
  margin: 0;
}

.local-tools input {
  min-width: 0;
  min-height: 34px;
  border: 1px solid #d7dde4;
  border-radius: 6px 0 0 6px;
  padding: 0 10px;
  outline: 0;
  font-size: 14px;
}

.local-tools form button {
  border-left: 0;
  border-radius: 0 6px 6px 0;
}

.local-brand-shell {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  border-bottom: 1px solid #d7dde4;
  background: #ffffff;
  padding: 18px clamp(16px, 4vw, 44px);
  color: #151a21;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  box-sizing: border-box;
}

.local-brand-shell * {
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.local-brand-mark {
  display: inline-grid;
  grid-template-columns: minmax(180px, 260px) auto;
  gap: 10px;
  align-items: center;
  color: #151a21;
  text-decoration: none;
}

.local-brand-logo-picture {
  display: inline-flex;
  align-items: center;
  width: clamp(180px, 22vw, 260px);
  max-width: 100%;
}

.local-brand-logo-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 104px;
  border-radius: 4px;
  object-fit: contain;
}

.local-brand-logo {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #d8242f;
  color: #fff;
  font-weight: 900;
  font-size: 20px;
  line-height: 1;
}

.local-brand-mark strong {
  display: block;
  color: #151a21;
  font-size: 18px;
  line-height: 1.1;
}

.local-brand-mark small {
  display: block;
  margin-top: 3px;
  color: #626b78;
  font-size: 12px;
}

.local-member-identity,
.local-level-badge {
  display: inline-flex;
  align-items: center;
}

.local-member-identity {
  min-width: 0;
  gap: 5px;
  vertical-align: middle;
}

.local-level-badge {
  flex: 0 0 auto;
}

.local-level-icon {
  display: block;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  filter:
    drop-shadow(0 0 1px rgba(255, 255, 255, 0.95))
    drop-shadow(0 0 3px rgba(255, 255, 255, 0.35));
}

.local-member-name-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.local-member-name-image {
  display: block;
  width: auto;
  max-width: 150px;
  height: auto;
  max-height: 30px;
  border-radius: 4px;
  object-fit: contain;
}

.local-brand-current {
  min-width: 0;
  color: #303846;
  font-size: 15px;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.local-brand-nav {
  display: flex;
  gap: 8px;
  align-items: center;
}

.local-brand-nav a {
  display: inline-grid;
  place-items: center;
  min-height: 32px;
  border: 1px solid #d7dde4;
  border-radius: 6px;
  background: #fff;
  color: #151a21;
  padding: 0 11px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 800;
}

.local-action-panel {
  display: grid;
  gap: 12px;
  width: min(1480px, calc(100% - 32px));
  max-width: calc(100% - 32px);
  margin: 20px auto 12px;
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: var(--local-surface);
  color: var(--local-ink);
  box-shadow: var(--local-shadow);
  padding: 16px 18px;
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  box-sizing: border-box;
}

.local-action-panel * {
  box-sizing: border-box;
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

.local-action-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.local-action-head strong,
.local-action-head span {
  display: block;
}

.local-action-head strong {
  font-size: 16px;
}

.local-action-head span,
.local-login-notice,
.local-empty,
.local-user-comment time {
  color: #68727d;
  font-size: 12px;
}

.local-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.local-action-buttons button,
.local-inline-form button {
  min-height: 34px;
  border: 1px solid #d7dde4;
  border-radius: 6px;
  background: #fff;
  color: #151a21;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
}

.local-action-buttons button:first-child,
.local-action-buttons button.active,
.local-inline-form button[type="submit"] {
  border-color: #d8242f;
  background: #d8242f;
  color: #fff;
}

.local-inline-form {
  display: grid;
  gap: 12px;
  width: min(860px, 100%);
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 16px;
}

.local-inline-form[hidden],
.local-login-notice[hidden] {
  display: none !important;
}

.local-form-head {
  display: grid;
  gap: 4px;
}

.local-form-head strong {
  color: var(--local-ink);
  font-size: 16px;
  font-weight: 900;
}

.local-form-head span,
.local-form-field span {
  color: var(--local-muted);
  font-size: 13px;
  line-height: 1.45;
}

.local-form-field {
  display: grid;
  gap: 6px;
  margin: 0;
}

.local-form-field[hidden] {
  display: none !important;
}

.local-inline-form input:not([type="hidden"]),
.local-inline-form textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--local-line);
  border-radius: 6px;
  background: var(--local-surface);
  color: var(--local-ink);
  padding: 11px 12px;
  font-size: 15px;
  line-height: 1.45;
  outline: 0;
}

.local-inline-form textarea {
  min-height: 132px;
  resize: vertical;
}

.local-inline-form input:focus,
.local-inline-form textarea:focus {
  border-color: #d8242f;
  box-shadow: 0 0 0 3px rgba(216, 36, 47, 0.12);
}

.local-form-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-start;
}

.local-login-notice {
  width: fit-content;
  border: 1px solid #f1c86c;
  border-radius: 6px;
  background: #fffaf0;
  padding: 9px 10px;
}

.local-login-notice a {
  color: #d8242f;
  font-weight: 800;
}

.local-comments {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-width: 980px;
}

.local-generated-pages {
  display: grid;
  gap: 8px;
  max-width: 980px;
}

.local-generated-head {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.local-generated-head strong {
  font-size: 15px;
}

.local-generated-head span {
  color: #68727d;
  font-size: 12px;
  font-weight: 800;
}

.local-generated-list,
.portal-generated-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.portal-generated-card {
  display: grid;
  gap: 5px;
  min-width: 0;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.portal-generated-card strong,
.portal-generated-card span,
.portal-generated-card a {
  min-width: 0;
  overflow-wrap: anywhere;
}

.portal-generated-card span {
  color: #68727d;
  font-size: 12px;
}

.portal-generated-card a {
  color: #2379e3;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.local-user-comment {
  display: grid;
  gap: 4px;
  min-width: 0;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}

.local-user-comment strong,
.local-user-comment p {
  min-width: 0;
  overflow-wrap: anywhere;
}

.local-user-comment p {
  margin: 0;
  color: #303846;
  font-size: 13px;
  line-height: 1.5;
}

.local-source-features {
  position: relative;
  z-index: 2147483000;
  pointer-events: none;
  scroll-margin-top: 74px;
  display: grid;
  gap: 12px;
  width: min(1480px, calc(100% - 32px));
  max-width: calc(100% - 32px);
  margin: 0 auto 20px;
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: var(--local-surface);
  padding: 16px 18px;
  color: var(--local-ink);
  box-shadow: var(--local-shadow);
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
  box-sizing: border-box;
}

.local-source-features a,
.local-source-features button,
.local-source-features input,
.local-source-features select,
.local-source-features textarea,
.local-source-features label {
  pointer-events: auto;
}

html.local-page-enhanced a[data-local-anchor-intent="jump"],
html.local-page-enhanced a[data-local-anchor-intent="sourceBusiness"] {
  position: relative;
  z-index: 2147483200;
}

.local-source-features * {
  box-sizing: border-box;
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

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

.local-source-head div {
  display: grid;
  gap: 3px;
}

.local-source-head strong {
  font-size: 15px;
  font-weight: 900;
}

.local-source-head span {
  color: #68727d;
  font-size: 12px;
}

.local-source-jumps,
.local-source-categories,
.local-source-banners,
.local-source-board-tools,
.local-source-tool-group,
.local-source-section-actions,
.local-source-contact-actions,
.local-source-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.local-source-jumps button,
.local-source-categories button,
.local-source-board-tools button,
.local-source-section-actions button,
.local-source-contact-actions button,
.local-source-pagination button {
  min-height: 32px;
  border: 1px solid #d7dde4;
  border-radius: 6px;
  background: #ffffff;
  color: #303846;
  padding: 0 10px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.local-source-categories button.active,
.local-source-board-tools button.active {
  border-color: var(--local-brand);
  background: var(--local-brand);
  color: #ffffff;
}

.local-source-contact {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 12px;
}

.local-source-contact > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.local-source-contact strong {
  color: #151a21;
  font-size: 14px;
  font-weight: 900;
}

.local-source-contact span,
.local-source-pagination span {
  color: #68727d;
  font-size: 13px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.local-source-contact-actions {
  justify-content: flex-end;
}

.local-source-contact-actions button:first-child,
.local-source-pagination button:not(:disabled) {
  border-color: var(--local-brand);
  color: var(--local-brand);
}

.local-source-pagination {
  align-items: center;
  justify-content: flex-end;
}

.local-source-pagination button:disabled {
  cursor: not-allowed;
  opacity: 0.5;
}

.local-source-section-actions button {
  border-color: var(--local-line);
  background: #f8fafc;
  color: var(--local-ink);
}

.local-source-section-actions button span {
  margin-left: 4px;
  opacity: 0.75;
}

.local-source-board-tools {
  align-items: center;
  justify-content: space-between;
}

.local-source-tool-group {
  align-items: center;
}

.local-source-panel-search {
  display: grid;
  grid-template-columns: minmax(180px, 280px) auto;
  gap: 6px;
  align-items: center;
}

.local-source-panel-search input {
  min-height: 38px;
  width: 100%;
  border: 1px solid var(--local-line);
  border-radius: 6px;
  background: #ffffff;
  color: var(--local-ink);
  padding: 0 11px;
  font-size: 14px;
}

.local-source-panel-search button {
  min-height: 38px;
  border: 1px solid var(--local-brand);
  border-radius: 6px;
  background: var(--local-brand);
  color: #ffffff;
  padding: 0 10px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.local-source-write {
  border-color: #d8242f !important;
  background: #d8242f !important;
  color: #ffffff !important;
}

html.local-page-enhanced form[data-local-form-discarded="true"] {
  display: none !important;
}

html.local-page-enhanced form.local-source-form-normalized {
  display: grid !important;
  gap: 12px;
  width: min(860px, 100%);
  max-width: 100%;
  margin: 16px auto;
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: var(--local-surface);
  padding: 16px;
  box-shadow: var(--local-shadow);
}

html.local-page-enhanced form.local-source-form-normalized input:not([type="hidden"]),
html.local-page-enhanced form.local-source-form-normalized select,
html.local-page-enhanced form.local-source-form-normalized textarea {
  width: 100% !important;
  min-height: 42px;
  border: 1px solid var(--local-line) !important;
  border-radius: 6px !important;
  background: var(--local-surface) !important;
  color: var(--local-ink) !important;
  padding: 10px 12px !important;
  font-size: 15px !important;
  line-height: 1.45;
  box-shadow: none !important;
  outline: 0;
}

html.local-page-enhanced form.local-source-form-normalized textarea {
  min-height: 132px;
  resize: vertical;
}

html.local-page-enhanced form.local-source-form-normalized input[type="checkbox"],
html.local-page-enhanced form.local-source-form-normalized input[type="radio"] {
  width: 16px !important;
  min-height: 16px !important;
  padding: 0 !important;
}

html.local-page-enhanced form.local-source-form-normalized input:focus,
html.local-page-enhanced form.local-source-form-normalized select:focus,
html.local-page-enhanced form.local-source-form-normalized textarea:focus {
  border-color: var(--local-brand) !important;
  box-shadow: 0 0 0 3px rgba(216, 36, 47, 0.12) !important;
}

html.local-page-enhanced form.local-source-form-normalized button,
html.local-page-enhanced form.local-source-form-normalized input[type="submit"],
html.local-page-enhanced form.local-source-form-normalized input[type="button"] {
  min-height: 38px !important;
  border: 1px solid var(--local-brand) !important;
  border-radius: 6px !important;
  background: var(--local-brand) !important;
  color: #ffffff !important;
  padding: 0 14px !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  cursor: pointer;
}

.local-source-categories button span {
  margin-left: 5px;
  opacity: 0.78;
}

.local-source-banner {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  width: min(240px, 100%);
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #ffffff;
  padding: 7px;
  color: #151a21;
  text-align: left;
  cursor: pointer;
}

.local-source-banner img {
  width: 72px;
  height: 46px;
  border-radius: 6px;
  object-fit: cover;
}

.local-source-banner span {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
  font-weight: 900;
}

.local-source-popup {
  position: fixed;
  right: 18px;
  bottom: 88px;
  z-index: 2147483400;
  width: min(320px, calc(100vw - 36px));
  overflow: hidden;
  border: 1px solid rgba(20, 28, 38, 0.16);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: 0 20px 70px rgba(0, 0, 0, 0.3);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

#localSourcePopupLayer {
  pointer-events: none;
}

#localSourcePopupLayer .local-source-popup {
  pointer-events: auto;
}

.local-source-popup-close {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  min-height: 30px;
  border: 1px solid rgba(255, 255, 255, 0.75);
  border-radius: 6px;
  background: rgba(20, 28, 38, 0.72);
  color: #ffffff;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.local-source-popup-media {
  display: block;
  width: 100%;
  height: 168px;
  border: 0;
  background: #f2f4f7;
  padding: 0;
  cursor: pointer;
}

.local-source-popup-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.local-source-popup-body {
  display: grid;
  gap: 6px;
  padding: 12px;
}

.local-source-popup-body strong,
.local-source-popup-body span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.local-source-popup-body strong {
  color: #151a21;
  font-size: 15px;
  font-weight: 900;
}

.local-source-popup-body span,
.local-source-popup-body label {
  color: #68727d;
  font-size: 12px;
}

.local-source-popup-body label {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  margin-top: 3px;
}

.local-feature-dialog {
  width: min(720px, calc(100% - 28px));
  border: 0;
  border-radius: 10px;
  padding: 0;
  box-shadow: 0 20px 70px rgba(0, 0, 0, 0.32);
}

.local-feature-dialog::backdrop {
  background: rgba(0, 0, 0, 0.48);
}

.local-feature-close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  min-height: 32px;
  border: 0;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.7);
  color: #ffffff;
  padding: 0 10px;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.local-feature-dialog-body {
  display: grid;
  gap: 12px;
  padding: 26px;
}

.local-feature-dialog-body > span {
  width: fit-content;
  border-radius: 6px;
  background: #eef6ff;
  color: #2379e3;
  padding: 5px 8px;
  font-size: 12px;
  font-weight: 900;
}

.local-feature-dialog-body h2,
.local-feature-dialog-body p {
  margin: 0;
}

.local-feature-dialog-body img {
  width: 100%;
  max-height: 420px;
  border-radius: 8px;
  object-fit: contain;
  background: #f4f6f8;
}

.local-feature-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.local-feature-actions a,
.local-feature-actions button {
  display: inline-grid;
  place-items: center;
  min-height: 34px;
  border: 1px solid #2379e3;
  border-radius: 6px;
  background: #2379e3;
  color: #ffffff;
  padding: 0 12px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.local-source-row-detail {
  display: grid;
  gap: 8px;
  margin: 0;
}

.local-source-row-detail div {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  gap: 10px;
}

.local-source-row-detail dt {
  color: #68727d;
  font-weight: 900;
}

.local-source-row-detail dd {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

.local-source-author-card {
  display: grid;
  gap: 12px;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #f8fafc;
  padding: 14px;
}

.local-source-author-card > div:first-child {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.local-source-author-card strong {
  color: #151a21;
  font-size: 18px;
  font-weight: 900;
}

.local-source-author-card > div:first-child span {
  border-radius: 999px;
  background: #eef6ff;
  color: #2379e3;
  padding: 4px 8px;
  font-size: 12px;
  font-weight: 900;
}

.local-source-gallery-grid,
.local-source-card-grid,
.local-source-review-list {
  display: grid;
  gap: 12px;
}

.local-source-gallery-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.local-source-gallery-grid figure,
.local-source-card-grid article,
.local-source-review-list article {
  display: grid;
  gap: 8px;
  margin: 0;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #ffffff;
  padding: 10px;
}

.local-source-gallery-grid figcaption,
.local-source-card-grid p,
.local-source-review-list p {
  margin: 0;
  color: #303846;
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.local-source-image-viewer {
  display: grid;
  gap: 14px;
}

.local-source-image-viewer > img {
  width: 100%;
  max-height: min(68vh, 720px);
  border-radius: 8px;
  background: #f2f4f7;
  object-fit: contain;
}

.local-source-share,
.local-source-editor,
.local-source-attachments,
.local-source-more {
  display: grid;
  gap: 12px;
}

.local-source-share input {
  width: 100%;
  min-height: 36px;
  border: 1px solid #d7dde4;
  border-radius: 6px;
  background: #f8fafc;
  color: #151a21;
  padding: 0 10px;
  font: inherit;
}

.local-source-attachment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.local-source-attachment-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.local-source-attachment-list li {
  display: grid;
  gap: 2px;
  border: 1px solid #d7dde4;
  border-radius: 6px;
  background: #f8fafc;
  padding: 8px 10px;
}

.local-source-attachment-list strong,
.local-source-attachment-list span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.local-source-attachment-list span {
  color: #68727d;
  font-size: 12px;
}

.local-source-attachment-grid figure {
  display: grid;
  gap: 6px;
  margin: 0;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #ffffff;
  padding: 8px;
}

.local-source-attachment-grid img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 6px;
  object-fit: cover;
}

.local-source-attachment-grid figcaption {
  color: #303846;
  font-size: 12px;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.local-source-secret-comment {
  display: grid;
  gap: 12px;
}

.local-source-secret-comment p {
  margin: 0;
  color: #303846;
  font-size: 14px;
  line-height: 1.55;
}

.local-source-card-head {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.local-source-card-head strong,
.local-source-review-list strong {
  color: #151a21;
  font-weight: 900;
}

.local-source-card-head span {
  border-radius: 999px;
  background: #e9f7ef;
  color: #137a37;
  padding: 3px 8px;
  font-size: 12px;
  font-weight: 900;
}

.local-source-card-images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.local-source-card-images img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.portal-source-filtered-out {
  display: none !important;
}

html[data-local-source-view="zine"] .bd_lst,
html[data-local-source-view="gallery"] .bd_lst {
  display: block !important;
}

html[data-local-source-view="zine"] .bd_lst thead,
html[data-local-source-view="gallery"] .bd_lst thead {
  display: none !important;
}

html[data-local-source-view="zine"] .bd_lst tbody,
html[data-local-source-view="gallery"] .bd_lst tbody {
  display: grid !important;
  gap: 10px;
}

html[data-local-source-view="gallery"] .bd_lst tbody {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

html[data-local-source-view="zine"] .bd_lst tr,
html[data-local-source-view="gallery"] .bd_lst tr {
  display: grid !important;
  gap: 6px;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

html[data-local-source-view="zine"] .bd_lst td,
html[data-local-source-view="gallery"] .bd_lst td {
  display: block !important;
  width: auto !important;
  border: 0 !important;
  padding: 0 !important;
}

html[data-local-source-view="gallery"] .bd_lst td:not(.title):not(.cate) {
  display: none !important;
}

html.local-source-viewer-on .bd_lst tr {
  box-shadow: inset 3px 0 0 #2379e3;
}

html.local-page-enhanced .portal-comments-normalized > :not([data-portal-comment-shell]) {
  display: none !important;
}

.portal-comments-shell {
  display: grid;
  gap: 14px;
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #ffffff;
  padding: 16px;
  color: #151a21;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.portal-comments-shell * {
  box-sizing: border-box;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.portal-comments-head {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
  border-bottom: 1px solid #e5e9ee;
  padding-bottom: 12px;
}

.portal-comments-head h2 {
  margin: 0;
  color: #151a21;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.25;
}

.portal-comments-head h2 span {
  color: #2379e3;
}

.portal-comments-head p,
.portal-comments-head strong,
.portal-comment-form-foot,
.portal-comment-meta {
  color: #68727d;
  font-size: 13px;
}

.portal-comments-head p {
  margin: 4px 0 0;
}

.portal-comment-form {
  display: grid;
  gap: 12px;
  margin: 0;
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: #f8fafc;
  padding: 16px;
}

.portal-comment-form label {
  color: #303846;
  font-size: 13px;
  font-weight: 900;
}

.portal-comment-form textarea {
  width: 100%;
  min-height: 120px;
  resize: vertical;
  border: 1px solid var(--local-line);
  border-radius: 6px;
  background: var(--local-surface);
  color: var(--local-ink);
  padding: 11px 12px;
  font-size: 15px;
  line-height: 1.5;
  outline: 0;
}

.portal-comment-form textarea:focus {
  border-color: var(--local-brand);
  box-shadow: 0 0 0 3px rgba(216, 36, 47, 0.12);
}

.portal-comment-form-foot {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.portal-comment-secret {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  margin: 0;
  color: #303846;
  font-size: 13px;
  font-weight: 900;
  white-space: nowrap;
}

.portal-comment-secret input {
  width: 16px;
  height: 16px;
  margin: 0;
}

.portal-comment-form button,
.portal-comment-actions button {
  min-height: 34px;
  border: 1px solid var(--local-brand);
  border-radius: 6px;
  background: var(--local-brand);
  color: #ffffff;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
}

.local-inline-form.portal-local-form,
.portal-comment-form.portal-local-form,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form {
  display: grid !important;
  gap: 14px;
  width: min(960px, 100%);
  max-width: 100%;
  border: 1px solid var(--local-line);
  border-radius: 8px;
  background: #fbfcfd;
  padding: 16px;
  box-shadow: none;
}

html.local-page-enhanced form.local-source-form-normalized.portal-local-form {
  margin: 16px auto;
}

.local-inline-form.portal-local-form .local-form-head,
.portal-comment-form.portal-local-form .local-form-head,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form .local-source-form-head {
  display: grid;
  gap: 4px;
  border-bottom: 1px solid var(--local-line);
  padding-bottom: 12px;
}

.local-inline-form.portal-local-form .local-form-head strong,
.portal-comment-form.portal-local-form label,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form .local-source-form-head strong {
  color: var(--local-ink);
  font-size: 16px;
  font-weight: 900;
  line-height: 1.4;
}

.local-inline-form.portal-local-form .local-form-head span,
.local-inline-form.portal-local-form .local-form-field span,
.portal-comment-form.portal-local-form .portal-comment-form-foot,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form .local-source-form-head span,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form label,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form legend {
  color: var(--local-muted);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}

.local-inline-form.portal-local-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.local-inline-form.portal-local-form select,
.local-inline-form.portal-local-form textarea,
.portal-comment-form.portal-local-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
.portal-comment-form.portal-local-form select,
.portal-comment-form.portal-local-form textarea,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
html.local-page-enhanced form.local-source-form-normalized.portal-local-form select,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form textarea {
  width: 100% !important;
  min-width: 0;
  min-height: 54px;
  border: 1px solid var(--local-line) !important;
  border-radius: 6px !important;
  background: var(--local-surface) !important;
  color: var(--local-ink) !important;
  padding: 14px 12px !important;
  font-size: 15px !important;
  line-height: 1.45;
  outline: 0;
  box-shadow: none !important;
}

.local-inline-form.portal-local-form textarea,
.portal-comment-form.portal-local-form textarea,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form textarea {
  min-height: 216px;
  resize: vertical;
}

.portal-comment-form.portal-local-form textarea {
  min-height: 168px;
}

.local-inline-form.portal-local-form input:focus,
.local-inline-form.portal-local-form select:focus,
.local-inline-form.portal-local-form textarea:focus,
.portal-comment-form.portal-local-form input:focus,
.portal-comment-form.portal-local-form select:focus,
.portal-comment-form.portal-local-form textarea:focus,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input:focus,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form select:focus,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form textarea:focus {
  border-color: var(--local-brand) !important;
  box-shadow: 0 0 0 3px rgba(216, 36, 47, 0.12) !important;
}

.local-inline-form.portal-local-form button,
.portal-comment-form.portal-local-form button,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form button,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input[type="submit"],
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input[type="button"] {
  min-height: 40px !important;
  border: 1px solid var(--local-brand) !important;
  border-radius: 6px !important;
  background: var(--local-brand) !important;
  color: #ffffff !important;
  padding: 0 14px !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  cursor: pointer;
  transition: background 120ms ease-out, border-color 120ms ease-out, transform 120ms ease-out;
}

.local-inline-form.portal-local-form button:hover,
.portal-comment-form.portal-local-form button:hover,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form button:hover,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input[type="submit"]:hover,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input[type="button"]:hover {
  border-color: var(--local-brand-dark) !important;
  background: var(--local-brand-dark) !important;
}

.local-inline-form.portal-local-form button:active,
.portal-comment-form.portal-local-form button:active,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form button:active,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input[type="submit"]:active,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form input[type="button"]:active {
  transform: translateY(1px);
}

.local-inline-form.portal-local-form button[type="button"],
html.local-page-enhanced form.local-source-form-normalized.portal-local-form [data-local-source-form-action="secondary"] {
  border-color: var(--local-line) !important;
  background: var(--local-surface) !important;
  color: var(--local-ink) !important;
}

.local-inline-form.portal-local-form button[type="button"]:hover,
html.local-page-enhanced form.local-source-form-normalized.portal-local-form [data-local-source-form-action="secondary"]:hover {
  border-color: var(--local-brand) !important;
  color: var(--local-brand-dark) !important;
}

.portal-comment-list {
  display: grid;
  gap: 10px;
}

.portal-comment-card {
  display: grid;
  gap: 8px;
  margin-left: calc(var(--comment-depth, 0) * 22px);
  border: 1px solid #d7dde4;
  border-radius: 8px;
  background: #ffffff;
  padding: 12px;
}

.portal-comment-card.is-source {
  background: #f8fafc;
}

.portal-comment-card.is-platform {
  border-color: #cfe0f4;
  background: #f7fbff;
}

.portal-comment-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.portal-comment-meta strong,
.portal-comment-author {
  color: #151a21;
  font-weight: 900;
}

.portal-comment-author {
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  cursor: pointer;
}

.portal-comment-author:hover,
.portal-comment-author:focus-visible {
  color: #2379e3;
  text-decoration: underline;
}

.portal-comment-meta span {
  border: 1px solid #d7dde4;
  border-radius: 999px;
  background: #ffffff;
  padding: 2px 7px;
  font-size: 12px;
  font-weight: 800;
}

.portal-comment-meta span.is-secret {
  border-color: #f0d38a;
  background: #fff7df;
  color: #875b00;
}

.portal-comment-card.is-secret-comment {
  border-style: dashed;
}

.portal-comment-card p,
.portal-comment-empty {
  margin: 0;
  color: #303846;
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.portal-comment-actions {
  display: flex;
  justify-content: flex-start;
}

.portal-comment-actions button {
  min-height: 28px;
  border-color: #cfd8e3;
  background: #ffffff;
  color: #2379e3;
  padding: 0 10px;
}

.portal-comment-replying {
  color: #2379e3;
  font-weight: 900;
}

.portal-source-comments {
  display: grid;
  gap: 12px;
}

.portal-source-comment {
  border: 1px solid #cfe0f4;
  border-radius: 8px;
  background: #f7fbff;
  padding: 12px;
  color: #1f2937;
}

.portal-source-comment-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
  font-size: 13px;
}

.portal-source-comment-meta strong {
  color: #1d4f8f;
}

.portal-source-comment-meta time,
.portal-source-vote-summary {
  color: #6b7280;
  font-size: 12px;
}

.portal-source-comment p {
  margin: 0;
  white-space: pre-wrap;
}

.portal-source-vote-summary {
  align-self: center;
  border: 1px solid #d7dde4;
  border-radius: 999px;
  background: #ffffff;
  padding: 6px 10px;
  font-weight: 800;
}

.portal-source-active {
  border-color: #2379e3 !important;
  box-shadow: 0 0 0 2px rgba(35, 121, 227, 0.14);
}

.portal-generated-pages {
  display: grid;
  gap: 10px;
  margin-bottom: 16px;
  border: 1px solid #cfe0f4;
  border-radius: 8px;
  background: #f7fbff;
  padding: 12px;
}

.portal-generated-pages:empty {
  display: none;
}

.portal-generated-pages h3 {
  margin: 0;
  color: #1f2937;
  font-size: 16px;
}

.portal-local-toast {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 2147483647;
  max-width: min(420px, calc(100% - 36px));
  border-radius: 8px;
  background: #202833;
  color: #fff;
  padding: 12px 14px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.22);
  font-size: 14px;
  line-height: 1.45;
  opacity: 0;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.18s ease, transform 0.18s ease;
}

.portal-local-toast.show {
  opacity: 1;
  transform: translateY(0);
}

.local-session-dialog {
  z-index: 2147483647;
  width: min(420px, calc(100% - 28px));
  border: 0;
  border-radius: 10px;
  padding: 0;
  box-shadow: 0 20px 70px rgba(0, 0, 0, 0.32);
}

.local-session-dialog::backdrop {
  background: rgba(0, 0, 0, 0.42);
}

.local-session-form {
  display: grid;
  gap: 12px;
  padding: 28px;
  color: #1d232b;
  font-family: "Segoe UI", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
}

.local-session-form p,
.local-session-form h2,
.local-session-form span {
  margin: 0;
}

.local-session-form p {
  color: #d8242f;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
}

.local-session-form h2 {
  font-size: 24px;
  line-height: 1.25;
}

#localSessionCountdown {
  color: #68727d;
  line-height: 1.6;
}

#localSessionMessage {
  min-height: 18px;
  color: #951720;
  font-size: 13px;
}

.local-session-form div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.local-session-form button {
  min-height: 40px;
  border-radius: 6px;
  padding: 0 13px;
  font-weight: 900;
}

.local-session-form button:first-child {
  border: 0;
  background: #d8242f;
  color: #ffffff;
}

.local-session-form button:last-child {
  border: 1px solid #d7dde4;
  background: #ffffff;
  color: #1d232b;
}

@media (max-width: 720px) {
  html.local-page-enhanced body {
    padding-top: 98px !important;
  }

  .local-tools {
    grid-template-columns: auto auto;
  }

  .local-tools form {
    grid-column: 1 / -1;
    width: 100%;
  }

  .local-brand-shell {
    grid-template-columns: 1fr;
    gap: 12px;
    padding: 16px;
  }

  .local-brand-current {
    white-space: normal;
  }

  .local-brand-nav {
    flex-wrap: wrap;
  }

  .local-action-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .local-action-panel,
  .local-source-features {
    width: min(100% - 20px, 1480px);
    max-width: calc(100% - 20px);
    padding: 16px;
  }

  .local-comments {
    grid-template-columns: 1fr;
  }

  .local-source-head {
    display: grid;
  }

  .local-source-banner {
    width: 100%;
  }

  .portal-comments-head,
  .portal-comment-form-foot {
    display: grid;
    justify-content: stretch;
  }

  .portal-comment-card {
    margin-left: calc(var(--comment-depth, 0) * 12px);
  }
}
