﻿:root {
  --ss-color-primary: #1b7f6f;
  --ss-color-ink: #123b3a;
  --ss-color-accent: #d6a441;
  --ss-color-bg: #eef7f3;
  --ss-color-card: #fffdf7;
  --ss-color-line: #d9e1dc;
  --ss-color-muted: #64756f;
  --ss-radius-card: 8px;
}
[v-cloak] { display: none; }
* { box-sizing: border-box; }
button,
.van-button {
  font-size: var(--ss-font-button, 12px);
}
input,
textarea,
select,
.van-field__control,
.van-field__input,
.van-field__textarea {
  font-size: 14px !important;
  color: #102f2d !important;
  font-weight: 700;
  line-height: 1.35;
}
input::placeholder,
textarea::placeholder,
.van-field__control::placeholder {
  color: #9aa8a3 !important;
  font-size: 12px !important;
  font-weight: 500;
}
.van-cell,
.van-field {
  font-size: 14px;
}
.van-field {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 6px 9px;
}
.van-field__label {
  width: 92px;
  flex: 0 0 92px;
  margin-right: 8px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 3px;
  text-align: right;
  color: #5b6f69 !important;
  font-size: 12px !important;
  font-weight: 900;
  line-height: 1.25;
}
.van-field__label::before {
  content: "";
}
.van-field__label::after {
  content: ":";
  color: #7f908a;
  font-weight: 900;
}
.van-field--required .van-field__label::before,
.ss-login-card .van-field__label::before,
.ss-form-grid > .van-cell:nth-of-type(-n+3) .van-field__label::before,
.ss-editor-block > .van-cell:nth-of-type(-n+3) .van-field__label::before {
  content: "*";
  color: #d64545;
}
.van-field__body {
  flex: 1 1 auto;
  min-height: 30px;
  align-items: center;
  padding: 0 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.van-field__body:focus-within {
  box-shadow: none;
}
.van-field--label-top .van-field__label {
  width: 92px;
  flex: 0 0 92px;
  margin: 0 8px 0 0;
}
.van-field--label-top .van-field__body {
  width: auto;
}
.van-cell__title,
.van-cell__value,
.van-checkbox__label,
.van-radio__label {
  font-size: 13px;
}
.ss-native-select {
  max-width: 100%;
  width: auto;
  min-height: 30px;
  border: 0;
  background: transparent;
  color: #102f2d;
  font-size: 14px;
  font-weight: 700;
  outline: none;
}
.van-dropdown-menu {
  width: auto;
  min-width: 120px;
}
.van-dropdown-menu__bar {
  width: auto;
  min-width: 120px;
  height: 34px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  box-shadow: none;
}
.van-dropdown-item {
  left: auto !important;
  right: auto !important;
  width: auto !important;
  min-width: 160px;
  max-width: min(420px, calc(100vw - 24px));
}
.van-dropdown-item__content {
  max-height: 360px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  overflow-y: auto;
  box-shadow: 0 12px 28px rgba(18,59,58,.14);
}
.van-dropdown-item__option {
  min-height: 34px;
  padding: 7px 12px;
  font-size: 13px;
}
body {
  margin: 0;
  background: var(--ss-color-bg);
  color: var(--ss-color-ink);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Microsoft YaHei", sans-serif;
}
.ss-h5-shell {
  width: 100%;
  max-width: 430px;
  min-height: 100vh;
  margin: 0 auto;
  background: linear-gradient(180deg, var(--ss-color-bg), #f8faf8);
  box-shadow: 0 0 0 1px rgba(0,0,0,.04), 0 24px 60px rgba(0,0,0,.12);
}
.ss-login-page {
  min-height: 100vh;
  display: grid;
  place-items: center;
  align-items: center;
  justify-items: center;
  padding: 24px 16px;
  background: linear-gradient(135deg, rgba(18,59,58,.92), rgba(27,127,111,.52)), var(--ss-login-bg, url("../images/shared/h5-home-library.jpg")) center/cover no-repeat;
}
.ss-login-card,
.ss-card {
  border: 1px solid var(--ss-color-line);
  border-radius: var(--ss-radius-card);
  background: var(--ss-color-card);
  box-shadow: 0 10px 24px rgba(18,59,58,.07);
}
.ss-login-card {
  width: 100%;
  max-width: 420px;
  display: grid;
  gap: 12px;
  padding: 20px;
}
.ss-captcha-code {
  min-width: 82px;
  min-height: 32px;
  border: 1px solid var(--ss-color-primary);
  border-radius: 8px;
  background: #edf7f3;
  color: var(--ss-color-primary);
  font-size: 18px;
  font-weight: 1000;
  letter-spacing: 2px;
}
.ss-home-more-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 6px;
  padding: 8px;
  margin-bottom: 10px;
  background: rgba(255,255,255,.96);
  box-shadow: none;
}
.ss-home-more-content {
  display: grid;
  gap: 6px;
  max-height: 30px;
  overflow: hidden;
}
.ss-home-more-panel.open .ss-home-more-content {
  max-height: none;
}
.ss-home-more-group {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  gap: 6px;
  align-items: start;
  padding: 2px 0;
}
.ss-home-more-group > b {
  min-height: 24px;
  display: grid;
  place-items: center;
  border-radius: 6px;
  font-size: 11px;
  white-space: nowrap;
}
.ss-home-more-cates > b {
  background: #edf7f3;
  color: var(--ss-color-primary);
}
.ss-home-more-tags > b {
  background: #fff7e3;
  color: #9a6a0c;
}
.ss-breadcrumb-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ss-home-more-panel::-webkit-scrollbar {
  display: none;
}
.ss-nav-chip {
  flex: 0 0 auto;
  max-width: 100%;
  border: 0;
  border-radius: 6px;
  padding: 5px 8px;
  background: #edf7f3;
  color: var(--ss-color-primary);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}
.ss-nav-chip em {
  margin-left: 3px;
  color: var(--ss-color-ink);
  font-style: normal;
}
.ss-home-more-panel span {
  background: var(--ss-color-primary);
  color: #fff;
}
.ss-login-mode {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 4px;
  border-radius: 999px;
  background: #edf5f2;
}
.ss-login-mode button {
  min-height: 34px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--ss-color-muted);
  font-size: 12px;
  font-weight: 900;
}
.ss-login-mode button.active {
  background: #fff;
  color: var(--ss-color-primary);
  box-shadow: 0 6px 14px rgba(18,59,58,.08);
}
.ss-brand-mark {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: var(--ss-radius-card);
  background: var(--ss-color-primary);
  color: #fff;
  font-weight: 900;
}
.ss-admin-login-entry {
  width: auto;
  min-width: 128px;
  padding: 0 16px;
  font-size: 18px;
}
.ss-title { margin: 0; font-size: var(--ss-font-page-title, 24px); color: var(--ss-color-page-title, var(--ss-color-ink)); line-height: 1.2; }
.ss-subtitle { margin: 4px 0 0; color: var(--ss-color-muted); font-size: 13px; line-height: 1.5; }
.ss-demo-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.ss-demo-row button { min-height: 34px; border: 0; border-radius: 8px; background: #edf5f2; color: var(--ss-color-primary); font-weight: 800; }
.ss-admin-app-login-link {
  display: block;
  text-align: center;
  color: var(--ss-color-primary);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}
.ss-admin-login-card {
  position: relative;
}
.ss-login-entry-panel a {
  display: grid;
  place-items: center;
  min-height: 38px;
  border-radius: 8px;
  background: #edf5f2;
  color: var(--ss-color-primary);
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}
.ss-login-entry-panel a.active {
  background: var(--ss-color-primary);
  color: #fff;
}
.ss-quick-login-toggle {
  position: fixed;
  left: 0;
  top: 50%;
  z-index: 30;
  width: 42px;
  height: 76px;
  transform: translateY(-50%);
  border: 0;
  border-radius: 0 12px 12px 0;
  background: var(--ss-color-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 12px 24px rgba(18,59,58,.2);
}
.ss-quick-login-panel {
  position: fixed;
  left: 48px;
  top: 50%;
  z-index: 31;
  width: 132px;
  display: grid;
  gap: 8px;
  transform: translateY(-50%);
  padding: 10px;
  border: 1px solid var(--ss-color-line);
  border-radius: var(--ss-radius-card);
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 38px rgba(18,59,58,.18);
}
.ss-quick-login-panel button {
  min-height: 38px;
  border: 0;
  border-radius: 8px;
  background: #edf5f2;
  color: var(--ss-color-primary);
  font-weight: 900;
}
.ss-topbar {
    position: relative;
    top: auto;
    z-index: auto;
  display: flex;
  justify-content: space-between;
    align-items: center;
    min-height: 50px;
    padding: 8px 12px;
    background: linear-gradient(135deg, rgba(18,59,58,.84), rgba(27,127,111,.46)), var(--ss-app-top-bg, url("../images/app/top-bg.jpg")) center 38%/cover no-repeat;
    border-bottom: 1px solid rgba(255,255,255,.22);
    color: #fff;
  }
.ss-topbar .ss-subtitle { color: rgba(255,255,255,.82); }
.ss-topbar .van-button { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.4); color: #fff; }
.ss-content { padding: 12px 12px 86px; }
.ss-hero {
  padding: 16px;
  color: #fff;
  background: linear-gradient(135deg, var(--ss-color-primary), var(--ss-color-ink));
  border-radius: var(--ss-radius-card);
}
.ss-hero b { color: var(--ss-color-accent); font-size: 12px; }
.ss-hero h2 { margin: 6px 0; font-size: 23px; }
.ss-grid { display: grid; gap: 10px; }
.ss-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ss-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ss-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ss-stat-card { min-height: 92px; display: grid; gap: 4px; align-content: center; padding: 12px; text-align: center; }
.ss-stat-card .van-icon { margin: 0 auto; color: var(--ss-color-accent); font-size: 24px; }
.ss-stat-card b { color: var(--ss-color-primary); font-size: 22px; }
.ss-stat-card span { color: var(--ss-color-muted); font-size: 12px; }
.ss-section-head { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 8px; }
.ss-section-head h3 { margin: 0; font-size: var(--ss-font-section-title, 16px); color: var(--ss-color-page-title, var(--ss-color-ink)); }
.ss-subject-chip {
  min-height: 42px;
  border: 1px solid var(--ss-color-line);
  border-radius: var(--ss-radius-card);
  background: #fff;
  color: var(--ss-color-ink);
  font-weight: 800;
}
.ss-subject-chip.active { border-color: var(--ss-color-primary); color: var(--ss-color-primary); background: #edf7f3; }
.ss-subject-list {
  display: grid;
  gap: 7px;
}
.ss-subject-config-row {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(210px, .9fr) auto;
  gap: 10px;
  align-items: center;
  min-height: 58px;
  padding: 9px 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: linear-gradient(180deg, #ffffff, #fbfdfc);
}
.ss-subject-main {
  min-width: 0;
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  gap: 7px;
  align-items: center;
}
.ss-subject-main b {
  color: var(--ss-color-card-title, var(--ss-color-ink));
  font-size: 15px;
  font-weight: 900;
}
.ss-subject-main span {
  padding: 2px 7px;
  border-radius: 999px;
  background: #eef7f3;
  color: var(--ss-color-primary);
  font-size: 11px;
  font-weight: 800;
}
.ss-subject-main p {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: var(--ss-color-muted);
  font-size: 12px;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ss-subject-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 5px;
  color: var(--ss-color-muted);
  font-size: 12px;
}
.ss-subject-meta span {
  white-space: nowrap;
}
.ss-subject-config-row .ss-actions {
  flex-wrap: nowrap;
  justify-content: flex-end;
}
.ss-list-card { display: grid; gap: 5px; padding: 10px; margin-bottom: 8px; }
.ss-list-card h4 { margin: 0; font-size: var(--ss-font-card-title, 14px); color: var(--ss-color-card-title, var(--ss-color-ink)); }
.ss-list-card p { margin: 0; color: var(--ss-color-muted); font-size: var(--ss-font-card-desc, 11px); line-height: 1.4; }
.ss-news-card {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 10px;
  padding: 10px;
  margin-bottom: 10px;
  align-items: stretch;
}
.ss-news-card img {
  width: 108px;
  height: 82px;
  object-fit: cover;
  border-radius: var(--ss-radius-card);
  background: #e8efec;
}
.ss-news-card h4 {
  margin: 0 0 5px;
  font-size: 15px;
}
.ss-news-card > div {
  min-height: 82px;
  display: flex;
  flex-direction: column;
}
.ss-news-card p {
  margin: 0;
  color: var(--ss-color-muted);
  font-size: 12px;
  line-height: 1.45;
  white-space: normal;
  overflow: visible;
  display: block;
}
.ss-news-card span {
  margin-top: auto;
  color: var(--ss-color-muted);
  font-size: 12px;
  line-height: 1.45;
  text-align: right;
}
.ss-detail-card {
  display: grid;
  gap: 10px;
  padding: 14px;
}
.ss-detail-card > img {
  width: 100%;
  max-height: 210px;
  object-fit: cover;
  border-radius: var(--ss-radius-card);
}
.ss-detail-card h2 {
  margin: 0;
  font-size: 22px;
  line-height: 1.25;
}
.ss-rich-html {
  color: var(--ss-color-ink);
  font-size: 14px;
  line-height: 1.8;
}
.ss-rich-html img {
  max-width: 100%;
  border-radius: var(--ss-radius-card);
  display: block;
  margin: 10px 0;
}
.ss-back-btn {
  border: 1px solid var(--ss-color-line);
  border-radius: 999px;
  background: #fff;
  color: var(--ss-color-primary);
  padding: 7px 12px;
  font-weight: 900;
}
.ss-chat-head {
  padding: 12px;
  margin-bottom: 10px;
}
.ss-chat-head h3 {
  margin: 0 0 4px;
}
.ss-chat-head p {
  margin: 0;
  color: var(--ss-color-muted);
  font-size: 12px;
}
.ss-chat-list {
  display: grid;
  gap: 10px;
}
.ss-chat-msg {
  display: flex;
}
.ss-chat-msg.mine {
  justify-content: flex-end;
}
.ss-chat-msg > div {
  max-width: 82%;
  display: grid;
  gap: 4px;
  padding: 10px;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--ss-color-line);
}
.ss-chat-msg.mine > div {
  background: #edf7f3;
  border-color: rgba(27,127,111,.22);
}
.ss-chat-msg b {
  color: var(--ss-color-ink);
  font-size: 11px;
}
.ss-chat-msg span,
.ss-chat-msg em,
.ss-chat-msg a {
  color: var(--ss-color-muted);
  font-size: 11px;
  font-style: normal;
}
.ss-chat-msg p {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
}
.ss-chat-composer {
  margin-top: 12px;
  padding: 12px;
}
.ss-tag-row { display: flex; flex-wrap: wrap; gap: 6px; }
.ss-tag { padding: 4px 7px; border-radius: 6px; background: #edf5f2; color: var(--ss-color-primary); font-size: 11px; font-weight: 800; }
.ss-click-tag {
  border: 1px solid transparent;
  cursor: pointer;
}
.ss-click-tag.active {
  border-color: var(--ss-color-primary);
  background: var(--ss-color-primary);
  color: #fff;
}
.ss-home-tagrow {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ss-more-btn {
  height: 24px;
  border: 1px solid var(--ss-color-line);
  border-radius: 6px;
  background: #fff;
  color: var(--ss-color-primary);
  padding: 0 6px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}
.ss-action-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 4px;
}
.ss-link-btn {
  border: 0;
  background: transparent;
  color: var(--ss-color-primary);
  font-size: 12px;
  font-weight: 900;
}
.ss-profile-card {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border-radius: var(--ss-radius-card);
  background: linear-gradient(135deg, var(--ss-color-primary), var(--ss-color-ink));
  color: #fff;
  box-shadow: 0 12px 26px rgba(18,59,58,.16);
}
.ss-profile-card h2 {
  margin: 0 0 4px;
  font-size: var(--ss-font-page-title, 18px);
}
.ss-profile-card p {
  margin: 0;
  color: rgba(255,255,255,.8);
    font-size: var(--ss-font-card-desc, 11px);
}
.ss-profile-logout {
  align-self: start;
  background: rgba(255,255,255,.14) !important;
  border-color: rgba(255,255,255,.42) !important;
  color: #fff !important;
}
.ss-avatar {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: var(--ss-radius-card);
  background: var(--ss-color-accent);
  color: var(--ss-color-ink);
  font-size: 24px;
  font-weight: 1000;
}
.ss-dialog-body {
  max-height: 58vh;
  overflow-y: auto;
  padding: 10px 14px;
}
.ss-calendar-tools {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 74px;
    gap: 8px;
    overflow-x: hidden;
  }
.ss-calendar-title {
  position: relative;
  min-height: 32px;
  display: flex;
  align-items: center;
  margin-bottom: 8px;
}
.ss-calendar-title h3 {
  margin: 0;
  color: var(--ss-color-ink);
  font-size: 15px;
}
.ss-calendar-title-counts {
  position: absolute;
  top: -2px;
  right: 0;
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.ss-calendar-title-counts button {
  min-height: 20px;
  border: 0;
  border-radius: 999px;
  background: var(--ss-color-accent);
  color: #fff;
  padding: 3px 7px;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.25;
}
.ss-calendar-tools input,
.ss-calendar-search {
  min-width: 0;
  width: 100%;
  height: 42px;
  border: 1px solid var(--ss-color-line);
  border-radius: var(--ss-radius-card);
  background: #fff;
  color: var(--ss-color-ink);
  padding: 0 10px;
  font-size: 14px;
}
.ss-calendar-search {
  border: 0;
  background: var(--ss-color-primary);
  color: #fff;
  font-weight: 800;
  white-space: nowrap;
}
.ss-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  margin-top: 10px;
}
.ss-calendar-grid button {
  position: relative;
  min-height: 40px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  background: #fff;
  color: var(--ss-color-ink);
  padding: 4px 2px;
}
.ss-calendar-grid button.active {
  border-color: var(--ss-color-primary);
  background: #edf7f3;
  color: var(--ss-color-primary);
}
.ss-calendar-grid b,
.ss-calendar-grid span {
  display: block;
  line-height: 1.2;
}
.ss-calendar-grid b {
  font-size: 15px;
}
.ss-calendar-grid span {
  margin-top: 4px;
  font-size: 10px;
}
.ss-calendar-grid .ss-calendar-badge {
  position: absolute;
  top: -6px;
  right: -5px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  margin: 0;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--ss-color-accent);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}
@media (max-width: 420px) {
  .ss-calendar-tools {
    grid-template-columns: 1fr 1fr 64px;
  }
}
.ss-comment-item {
  display: grid;
  gap: 3px;
  padding: 8px 0;
  border-bottom: 1px solid var(--ss-color-line);
}
.ss-comment-item b {
  color: var(--ss-color-ink);
  font-size: 13px;
}
.ss-comment-item p {
  margin: 0;
  color: var(--ss-color-muted);
  font-size: 13px;
  line-height: 1.45;
}
.ss-comment-item span {
  color: #8a9792;
  font-size: 11px;
}
.ss-comment-compose-row {
  grid-template-columns: minmax(0, 1fr) 64px;
  align-items: center;
  gap: 8px;
  padding: 8px;
}
.ss-comment-compose-row .van-cell {
  min-height: 34px;
  padding: 4px 8px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
}
.ss-comment-compose-row .van-button {
  height: 34px;
}
.van-tabbar {
  left: 50% !important;
  right: auto !important;
  width: min(100%, 430px) !important;
  transform: translateX(-50%);
  height: 64px;
  border-top: 1px solid var(--ss-color-line);
}
.ss-admin-layout { min-height: 100vh; display: grid; grid-template-rows: 60px minmax(0, 1fr); background: #eef4f2; }
.ss-admin-body { min-height: 0; display: grid; grid-template-columns: 210px minmax(0, 1fr); }
.ss-admin-sidebar { min-height: 0; overflow-y: auto; padding: 14px 10px; background: #fff; border-right: 1px solid var(--ss-color-line); }
.ss-admin-main { min-width: 0; min-height: 0; overflow-y: auto; padding: 14px; }
.ss-admin-page-frame-wrap {
  height: calc(100vh - 96px);
  min-height: 560px;
  overflow: hidden;
}
.ss-admin-page-frame {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  background: transparent;
}
.ss-admin-embed-body {
  min-height: 100vh;
  margin: 0;
  background: transparent;
  overflow: auto;
}
.ss-admin-embed-main {
  padding: 0;
}
.ss-admin-layout-top,
.ss-admin-layout-top2,
.ss-admin-layout-popup {
  grid-template-rows: 60px auto minmax(0, 1fr);
}
.ss-admin-layout-top .ss-admin-body,
.ss-admin-layout-top2 .ss-admin-body,
.ss-admin-layout-popup .ss-admin-body {
  display: contents;
}
.ss-admin-layout-top .ss-admin-sidebar,
.ss-admin-layout-top2 .ss-admin-sidebar,
.ss-admin-layout-popup .ss-admin-sidebar {
  width: 100%;
  min-height: auto;
  max-height: none;
  overflow: visible;
  padding: 8px 12px;
  grid-column: 1 / -1;
  grid-row: 2;
  border-right: 0;
  border-bottom: 1px solid var(--ss-color-line);
  position: relative;
  z-index: 30;
}
.ss-admin-layout-top .ss-admin-menu,
.ss-admin-layout-top2 .ss-admin-menu,
.ss-admin-layout-popup .ss-admin-menu {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
  white-space: nowrap;
  overflow: visible;
}
.ss-admin-layout-top .ss-admin-menu-group,
.ss-admin-layout-top2 .ss-admin-menu-group,
.ss-admin-layout-popup .ss-admin-menu-group {
  position: relative;
  min-width: 112px;
}
.ss-admin-layout-top .ss-admin-submenu,
.ss-admin-layout-top2 .ss-admin-submenu,
.ss-admin-layout-popup .ss-admin-submenu {
  position: absolute;
  left: 0;
  top: calc(100% - 1px);
  z-index: 80;
  min-width: 138px;
  max-height: 70vh;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 6px;
  border: 1px solid rgba(27,127,111,.45);
  border-radius: 0 0 8px 8px;
  background: #e6f3ee;
  box-shadow: 0 12px 22px rgba(18,59,58,.14);
}
.ss-admin-layout-top .ss-admin-submenu::-webkit-scrollbar,
.ss-admin-layout-top2 .ss-admin-submenu::-webkit-scrollbar,
.ss-admin-layout-popup .ss-admin-submenu::-webkit-scrollbar {
  width: 0;
  height: 0;
}
.ss-admin-layout-top .ss-admin-main,
.ss-admin-layout-top2 .ss-admin-main,
.ss-admin-layout-popup .ss-admin-main {
  min-height: 0;
  grid-column: 1 / -1;
  grid-row: 3;
  overflow-y: auto;
}
.ss-admin-logo { display: grid; gap: 5px; margin-bottom: 12px; padding: 12px; border-radius: var(--ss-radius-card); background: var(--ss-color-primary); color: #fff; }
.ss-admin-menu { display: grid; gap: 12px; }
.ss-admin-menu-group { display: grid; gap: 6px; }
.ss-admin-menu-group p { margin: 4px 0 0; color: var(--ss-color-muted); font-size: 12px; font-weight: 900; }
.ss-admin-menu button { min-height: 38px; border: 1px solid var(--ss-color-line); border-radius: var(--ss-radius-card); background: #f8faf8; color: var(--ss-color-ink); font-weight: 800; text-align: left; padding: 0 12px; }
.ss-admin-menu-title,
.ss-admin-root-menu {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
}
.ss-admin-menu-title span,
.ss-admin-root-menu {
  font-weight: 900;
}
.ss-admin-menu-title span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.ss-admin-submenu {
  display: grid;
  gap: 6px;
  padding-left: 14px;
  border-left: 2px solid rgba(27,127,111,.18);
}
.ss-admin-submenu button {
  min-height: 34px;
  font-size: 8px;
  font-weight: 700;
}
.ss-admin-layout-top .ss-admin-menu-title,
.ss-admin-layout-top2 .ss-admin-menu-title,
.ss-admin-layout-popup .ss-admin-menu-title {
  border-color: rgba(27,127,111,.45);
  border-radius: 8px 8px 0 0;
}
.ss-admin-layout-top .ss-admin-submenu button,
.ss-admin-layout-top2 .ss-admin-submenu button,
.ss-admin-layout-popup .ss-admin-submenu button {
  border-color: rgba(27,127,111,.22);
  background: #f8fffb;
}
.ss-admin-menu button.active { border-color: var(--ss-color-primary); color: var(--ss-color-primary); background: #edf7f3; }
.ss-admin-topbar { position: relative; width: 100%; height: 60px; display: flex; justify-content: flex-end; align-items: center; padding: 0 14px; background: linear-gradient(135deg, rgba(18,59,58,.9), rgba(27,127,111,.62)), var(--ss-admin-top-bg, url("../images/admin/top-bg.jpg")) center 42%/cover no-repeat; border-bottom: 1px solid rgba(255,255,255,.25); box-shadow: 0 10px 24px rgba(18,59,58,.14); }
.ss-admin-top-left { position: relative; z-index: 2; display: flex; align-items: center; justify-content: flex-end; gap: 8px; color: #fff; font-size: 12px; font-weight: 800; margin-left: auto; }
.ss-admin-top-left button { min-height: 28px; border: 1px solid rgba(255,255,255,.36); border-radius: 8px; background: rgba(255,255,255,.16); color: #fff; padding: 0 9px; font-size: 12px; font-weight: 800; }
.ss-admin-top-left .van-button { color: #fff; border-color: rgba(255,255,255,.48); background: rgba(255,255,255,.12); }
.ss-admin-title-center { position: absolute; inset: 0; display: grid; align-content: center; justify-items: center; pointer-events: none; text-align: center; }
.ss-admin-title-center b { color: #fff; font-size: 24px; line-height: 1.15; }
.ss-admin-title-center p { margin: 3px 0 0; color: rgba(255,255,255,.86); font-size: 13px; }
.ss-admin-panel { padding: 14px; margin-bottom: 12px; }
.ss-admin-floating-copy {
  position: fixed;
  left: 50%;
  bottom: 8px;
  z-index: 60;
  transform: translateX(-50%);
  padding: 4px 12px;
  border: 1px solid rgba(27,127,111,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.86);
  color: var(--ss-color-muted);
  font-size: 11px;
  box-shadow: 0 8px 18px rgba(18,59,58,.08);
  pointer-events: none;
}
.ss-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ss-theme-card { display: grid; gap: 8px; padding: 12px; }
.ss-theme-preview { height: 54px; border-radius: var(--ss-radius-card); border: 1px solid var(--ss-color-line); }
.ss-color-input {
  width: 42px;
  height: 28px;
  border: 1px solid var(--ss-color-line);
  border-radius: 7px;
  background: #fff;
  padding: 2px;
}
.ss-color-value {
  margin-left: 8px;
  color: var(--ss-color-muted);
  font-size: 12px;
  font-weight: 800;
}
.van-button--primary,
.ss-action-row .van-button--primary,
.ss-actions .van-button--primary {
  color: var(--ss-color-button-text, #fff) !important;
  font-size: var(--ss-font-button, 12px);
}
.van-button,
button {
  font-size: var(--ss-font-button, 12px);
}
.ss-setting-color-card {
  display: grid;
  gap: 7px;
  padding: 10px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  background: rgba(255,255,255,.78);
}
.ss-setting-color-card label {
  color: var(--ss-color-ink);
  font-size: 13px;
  font-weight: 900;
}
.ss-setting-color-card p {
  margin: 0;
  color: var(--ss-color-muted);
  font-size: 11px;
}
.ss-color-picker-line {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}
.ss-color-swatch-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ss-color-swatch-row button {
  width: 24px;
  height: 24px;
  border: 1px solid rgba(18,59,58,.18);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.48);
}
@media (max-width: 760px) {
  .ss-admin-layout { grid-template-columns: 1fr; }
  .ss-admin-sidebar { position: static; }
  .ss-form-grid { grid-template-columns: 1fr; }
}
/* Admin chart visualization module */
.ss-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 10px 0;
}
.ss-chart-layout {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}
.ss-chart-console {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.ss-popup-page {
  min-height: 100vh;
  min-height: 100dvh;
  height: auto;
  overflow: visible;
  background: var(--ss-color-bg);
}
.ss-popup-page .ss-content {
  min-height: auto;
  padding-bottom: 28px;
}
.ss-chart-config,
.ss-chart-main {
  min-width: 0;
}
.ss-chart-config h3,
.ss-chart-main h3 {
  margin: 12px 0 8px;
  color: var(--ss-color-ink);
}
.ss-chart-head,
.ss-chart-tile-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}
.ss-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-height: 120px;
  overflow: auto;
  margin: 8px 0;
}
.ss-chip-list button,
.ss-chip-list span,
.ss-chart-tile-head button {
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #f8faf8;
  color: var(--ss-color-primary);
  padding: 6px 8px;
  font-size: 12px;
  font-weight: 800;
}
.ss-chip-list span button {
  margin-left: 6px;
  border: 0;
  background: transparent;
  color: #b2475d;
  padding: 0 2px;
}
.ss-chart-fab {
  position: fixed;
  right: 18px;
  bottom: 18px;
  z-index: 20;
  display: grid;
  gap: 7px;
}
.ss-chart-fab button {
  min-width: 128px;
  border: 1px solid rgba(27,127,111,.28);
  border-radius: 999px;
  background: var(--ss-color-primary);
  color: #fff;
  padding: 9px 12px;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 10px 24px rgba(18,59,58,.16);
}
.ss-template-thumb {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: 8px;
  border: 1px solid #d9e1dc;
  background: #f3f7f5;
}
.ss-template-empty {
  display: grid;
  place-items: center;
  color: #64756f;
  font-weight: 800;
}
.ss-theme-card.active {
  border-color: var(--ss-color-primary);
  box-shadow: 0 0 0 2px rgba(27,127,111,.12);
}
.ss-publish-template-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  margin-top: 12px;
}
.ss-form-grid-1 {
  grid-template-columns: minmax(0, 1fr);
}
.ss-publish-color-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.ss-publish-color-grid .van-cell {
  padding: 4px 6px;
  min-height: 32px;
}
.ss-ui-theme-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.ss-ui-theme-live {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}
.ss-ui-theme-live .ss-section-head {
  margin: 0;
}
.ss-ui-theme-live .ss-list-card {
  margin-bottom: 0;
}
.ss-current-config-panel {
  margin-bottom: 12px;
  padding: 10px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  background: #fbfdfc;
}
.ss-current-config-panel .ss-section-head {
  margin: 0 0 8px;
}
.ss-current-config-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.ss-config-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.ss-config-chip-row .ss-tag {
  max-width: 100%;
  overflow-wrap: anywhere;
}
.ss-app-theme-demo,
.ss-admin-theme-demo {
  overflow: hidden;
}
.ss-app-theme-demo .ss-topbar,
.ss-admin-theme-demo .ss-admin-topbar {
  position: relative;
  min-height: 58px;
  border-radius: 8px;
}
.ss-template-detail-card {
  display: grid;
  gap: 10px;
}
.ss-template-detail-card .ss-template-thumb {
  max-height: 260px;
  object-fit: contain;
}
.ss-template-row-card {
  display: grid;
  grid-template-columns: 30% minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  min-height: 80px;
  padding: 8px;
  margin-bottom: 8px;
}
.ss-template-row-card .ss-template-thumb {
  width: 100%;
  height: 64px;
  aspect-ratio: auto;
  object-fit: cover;
}
.ss-template-row-body {
  min-width: 0;
  display: grid;
  gap: 4px;
}
.ss-template-row-body h4,
.ss-template-row-body p {
  margin: 0;
}
.ss-template-row-body h4 {
  font-size: 14px;
  color: var(--ss-color-ink);
}
.ss-template-row-body p {
  color: var(--ss-color-muted);
  font-size: 11px;
  line-height: 1.35;
}
.ss-template-row-card .ss-actions {
  margin: 2px 0 0;
  gap: 6px;
}
.ss-menu-style-thumb {
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 4px;
  border-style: solid;
}
.ss-menu-style-thumb b {
  font-size: 18px;
}
.ss-menu-style-thumb span {
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 900;
}
.ss-copy-template-dialog {
  display: grid;
  gap: 10px;
  padding: 16px;
  border-radius: 10px;
  background: #fff;
}
.ss-copy-template-dialog h3,
.ss-copy-template-dialog p {
  margin: 0;
}
.ss-copy-template-dialog p {
  color: var(--ss-color-muted);
  font-size: 12px;
}
.ss-copy-template-dialog .van-cell {
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
}
.ss-table-picker {
  display: grid;
  gap: 6px;
  max-height: 180px;
  overflow: auto;
  padding: 8px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fff;
}
.ss-table-picker label,
.ss-field-box label {
  display: flex;
  gap: 6px;
  align-items: center;
  min-height: 28px;
  color: #53635f;
  font-size: 12px;
}
.ss-field-box {
  display: grid;
  gap: 4px;
  margin-top: 8px;
  padding: 8px;
  border: 1px solid #e4ece8;
  border-radius: 8px;
  background: #fbfdfb;
}
.ss-field-box b {
  color: var(--ss-color-ink);
  font-size: 13px;
}
.ss-field-box small {
  color: #8a9894;
}
.ss-chart-preview {
  width: 100%;
  height: 320px;
  min-height: 320px;
  margin: 12px 0;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fff;
}
.ss-chart-query-editor h3 {
  margin: 12px 0 8px;
  font-size: 15px;
  color: var(--ss-color-ink);
}
.ss-chart-query-block {
  display: grid;
  gap: 6px;
  padding: 8px;
  margin-bottom: 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fbfdfc;
}
.ss-chart-query-row,
.ss-chart-join-row,
.ss-chart-field-row,
.ss-chart-metric-row {
  display: grid;
  gap: 6px;
  align-items: center;
}
.ss-chart-query-row { grid-template-columns: 48px minmax(160px, 1fr) minmax(120px, 1fr) 62px; }
.ss-chart-join-row { grid-template-columns: minmax(110px, 1fr) minmax(110px, 1fr) minmax(110px, 1fr) minmax(110px, 1fr) 48px 62px; }
.ss-chart-field-row { grid-template-columns: minmax(120px, 1fr) minmax(140px, 1fr) minmax(120px, 1fr) 62px; }
.ss-chart-metric-row { grid-template-columns: minmax(110px, 1fr) minmax(130px, 1fr) 90px minmax(120px, 1fr) 62px; }
.ss-chart-query-head {
  min-height: 26px;
  color: var(--ss-color-muted);
  font-size: 12px;
  font-weight: 800;
}
.ss-chart-query-block input,
.ss-chart-query-block select {
  min-width: 0;
  height: 30px;
  border: 1px solid #d9e1dc !important;
  border-radius: 6px !important;
  padding: 0 8px;
  background: #fff !important;
  color: #173331;
  font-size: 13px;
}
.ss-chart-query-block button,
.ss-query-add-btn {
  height: 30px;
  border: 1px solid rgba(27,127,111,.24);
  border-radius: 6px;
  background: #eef8f4;
  color: var(--ss-color-primary);
  font-size: 12px;
}
.ss-chart-query-block button:disabled {
  opacity: .45;
}
.ss-query-add-btn {
  justify-self: start;
  padding: 0 12px;
}
.ss-chart-query-tip {
  margin: 0 0 6px;
  color: var(--ss-color-muted);
  font-size: 12px;
}
.ss-chart-board {
  display: grid;
  gap: 10px;
}
.ss-chart-board.cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ss-chart-board.cols-5 {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.ss-chart-tile {
  min-width: 0;
  padding: 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fff;
}
.ss-chart-tile-head b {
  color: var(--ss-color-ink);
  font-size: 13px;
}
.ss-chart-box {
  width: 100%;
  height: 220px;
  min-height: 220px;
}
@media (max-width: 1100px) {
  .ss-chart-layout {
    grid-template-columns: 1fr;
  }
  .ss-chart-console {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ss-chart-board.cols-5,
  .ss-chart-board.cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .ss-chart-console {
    grid-template-columns: 1fr;
  }
  .ss-chart-board.cols-5,
  .ss-chart-board.cols-3 {
    grid-template-columns: 1fr;
  }
  .ss-chart-query-row,
  .ss-chart-join-row,
  .ss-chart-field-row,
  .ss-chart-metric-row {
    grid-template-columns: 1fr;
  }
}

.ss-menu-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.ss-menu-list .ss-list-card {
  cursor: pointer;
}
.ss-menu-list .ss-mine-menu-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  min-height: 38px;
  padding: 8px 10px;
  margin-bottom: 4px;
}
.ss-mine-menu-card h4 {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  align-items: baseline;
  font-size: 14px;
}
.ss-mine-menu-card small {
  color: var(--ss-color-muted);
  font-size: 11px;
  font-weight: 600;
}
.ss-mine-menu-card .van-icon {
  color: var(--ss-color-muted);
}
.ss-study-menu-list .ss-list-card {
  min-height: 72px;
}
.ss-second-top {
  position: relative;
  top: auto;
  z-index: auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin: 10px 0 12px;
  padding: 10px 12px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: var(--ss-radius-card);
  background: linear-gradient(135deg, rgba(18,59,58,.72), rgba(27,127,111,.34)), var(--ss-app-profile-bg, url("../images/app/profile-bg.jpg")) center 45%/cover no-repeat;
  color: #fff;
  box-shadow: 0 8px 18px rgba(18,59,58,.08);
}
.ss-second-top h3 {
  margin: 0;
  color: #fff;
  font-size: 18px;
}
.ss-second-top p {
  margin: 2px 0 0;
  color: rgba(255,255,255,.78);
  font-size: 11px;
}
.ss-mine-profile-view {
  position: relative;
}
.ss-profile-edit-btn {
  position: absolute;
  right: 10px;
  top: 10px;
}
.ss-info-grid {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 7px 8px;
  align-items: start;
  font-size: 13px;
}
.ss-info-grid span {
  color: var(--ss-color-muted);
  text-align: right;
  font-weight: 800;
}
.ss-info-grid b {
  min-width: 0;
  color: var(--ss-color-ink);
  font-weight: 800;
  word-break: break-word;
}
.ss-mine-relation-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid var(--ss-color-line);
}
.ss-mine-relation-row:last-child {
  border-bottom: 0;
}
.ss-mine-relation-row b,
.ss-mine-relation-row p {
  display: block;
  margin: 0;
}
.ss-mine-relation-row p {
  margin-top: 3px;
  color: var(--ss-color-muted);
  font-size: 12px;
}
.ss-profile-edit-head {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  margin-bottom: 8px;
}
.ss-profile-edit-head img {
  width: 54px;
  height: 54px;
  border-radius: 14px;
  object-fit: cover;
}
.ss-profile-edit-head h4,
.ss-profile-edit-head p {
  margin: 0;
}
.ss-mine-info-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin: 10px 0 -2px;
}
.ss-mine-info-actions span {
  color: var(--ss-color-muted);
  font-size: 12px;
  font-weight: 900;
}
.ss-reply-box {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding: 8px 10px;
  border-left: 3px solid var(--ss-color-primary);
  border-radius: 8px;
  background: rgba(27, 127, 111, .07);
}
.ss-reply-box div {
  padding: 6px 0;
  border-bottom: 1px solid rgba(27, 127, 111, .12);
}
.ss-reply-box div:last-child {
  border-bottom: 0;
}
.ss-reply-box b,
.ss-reply-box span {
  font-size: 12px;
  color: var(--ss-color-primary);
}
.ss-reply-box p {
  margin: 4px 0 0;
  color: #33423f;
}

.ss-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0;
}
.ss-editor-toolbar button {
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #f8faf8;
  color: var(--ss-color-primary);
  padding: 8px 10px;
  font-weight: 800;
}
.ss-editor-block {
  display: grid;
  gap: 6px;
  margin: 8px 0;
  padding: 8px;
  border: 1px solid #e0e9e5;
  border-radius: 8px;
  background: #fbfdfb;
}
.ss-editor-block .van-cell {
  min-height: 34px;
  padding: 4px 8px;
}
.ss-editor-block .van-field__label {
  width: 64px;
  flex-basis: 64px;
}
.ss-editor-block .van-field__body {
  min-height: 28px;
}
.ss-editor-type-field .van-field__body {
  align-items: center;
}
.ss-editor-visible-check {
  min-height: 38px;
  padding: 7px 10px;
}
.ss-editor-image-row {
    display: grid;
    gap: 6px;
    padding: 8px;
    border-radius: 8px;
    background: #fff;
  }
.ss-editor-more-row {
  display: flex;
  justify-content: center;
  margin: 8px 0 10px;
}
.ss-editor-more-row button {
  min-height: 34px;
  border: 1px dashed var(--ss-color-primary);
  border-radius: 8px;
  background: #fff;
  color: var(--ss-color-primary);
  padding: 0 14px;
  font-size: 12px;
  font-weight: 900;
}
.ss-rich-html figure {
  margin: 10px 0;
}
.ss-rich-html img,
.ss-rich-html video {
  width: 100%;
  max-width: 100%;
  border-radius: 8px;
}
.ss-rich-html audio {
  width: 100%;
}
.ss-rich-html figcaption {
  margin-top: 5px;
  color: #65736f;
  font-size: 12px;
  text-align: center;
}
.ss-rich-images {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
}
.ss-rich-html.theme-card {
  background: #fff;
  border: 1px solid #d9e1dc;
  box-shadow: 0 10px 24px rgba(18,59,58,.06);
}
.ss-rich-html.theme-news p {
  line-height: 1.9;
  text-indent: 2em;
}
.ss-publish-preview-dialog {
  width: min(960px, calc(100vw - 16px)) !important;
  max-width: calc(100vw - 16px) !important;
}
.ss-publish-preview-dialog .van-dialog__content {
  max-height: min(86vh, 860px);
  overflow: hidden;
  background: #eef2f1;
}
.ss-publish-preview-dialog .ss-dialog-body {
  max-height: none;
  overflow: hidden;
  padding: 10px;
}
.ss-publish-preview-stage {
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, rgba(27,127,111,.12), rgba(214,164,65,.1)),
    #edf3f1;
}
.ss-phone-preview-shell {
  width: min(750px, calc(100vw - 44px));
  height: min(76vh, 812px);
  display: grid;
  grid-template-rows: 42px minmax(0, 1fr);
  overflow: hidden;
  border: 10px solid #111827;
  border-radius: 34px;
  background: #111827;
  box-shadow: 0 22px 60px rgba(15,23,42,.28);
}
.ss-phone-preview-top {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 64px;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  color: #e5e7eb;
  background: #111827;
  font-size: 12px;
  font-weight: 900;
}
.ss-phone-preview-top span {
  width: 48px;
  height: 14px;
  border-radius: 999px;
  background: #030712;
  justify-self: start;
}
.ss-phone-preview-top b {
  overflow: hidden;
  text-align: center;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.ss-phone-preview-top i {
  width: 42px;
  height: 12px;
  border-radius: 999px;
  border: 2px solid #9ca3af;
  justify-self: end;
  position: relative;
}
.ss-phone-preview-top i::after {
  content: "";
  position: absolute;
  right: 2px;
  top: 2px;
  width: 18px;
  height: 4px;
  border-radius: 999px;
  background: #22c55e;
}
.ss-phone-preview-page {
  width: 100%;
  min-width: 0;
  overflow-y: auto;
  background: var(--pp-bg, #f7fbf9);
}
.ss-publish-preview-html {
  width: 100%;
  min-height: 100%;
  padding: 14px;
  background: var(--pp-bg, #f7fbf9);
}
.ss-publish-preview-html > .ss-publish-preview-doc {
  max-width: 750px;
  min-height: calc(100% - 28px);
  margin: 0 auto;
}
.ss-publish-preview-doc {
  display: grid;
  gap: 10px;
  padding: 12px;
  border-radius: var(--pp-radius, 8px);
  background: var(--pp-card, #fff);
  color: var(--pp-text, var(--ss-color-ink));
  font-family: var(--pp-font, inherit);
  font-size: var(--pp-text-size, 14px);
}
.ss-publish-preview-doc header {
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ss-color-line);
}
.ss-publish-preview-doc h2,
.ss-publish-preview-doc p {
  margin: 0 0 6px;
}
.ss-publish-preview-doc h2 {
  color: var(--pp-title, var(--ss-color-ink));
  font-size: var(--pp-title-size, 20px);
}
.ss-publish-preview-doc .ss-rich-html,
.ss-publish-preview-doc .ss-rich-html p,
.ss-publish-preview-doc .ss-rich-html li {
  color: var(--pp-text, var(--ss-color-ink));
  font-size: var(--pp-text-size, 14px);
  font-family: var(--pp-font, inherit);
}
.ss-publish-preview-doc header span {
  color: var(--pp-meta, var(--ss-color-muted));
  font-size: 12px;
  font-weight: 800;
}
.ss-extra-display-row {
  border: 1px solid var(--pp-field-border, var(--ss-color-line));
  background: var(--pp-field-bg, rgba(27,127,111,.06));
  display: grid;
  gap: 6px;
  padding: 8px;
  border-radius: 8px;
}
.ss-extra-display-row b {
  color: var(--pp-field-label, var(--ss-color-primary));
}
.ss-extra-display-row p {
  color: var(--pp-field-value, var(--ss-color-ink));
}
.ss-extra-display-row em {
  color: var(--pp-meta, var(--ss-color-muted));
  font-size: 12px;
  font-style: normal;
}
.ss-extra-type-date p {
  color: var(--pp-date-color, #6d5b22) !important;
  font-weight: 800;
}
.ss-extra-textarea {
  padding: 8px;
  border-radius: 6px;
  background: var(--pp-textarea-bg, #fff);
  white-space: pre-wrap;
}
.ss-extra-file-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.ss-extra-file-list a,
.ss-extra-type-url a {
  color: var(--pp-file-color, var(--ss-color-primary));
  font-weight: 800;
  text-decoration: none;
}
.ss-extra-image-grid {
  display: grid;
  gap: 6px;
}
.ss-extra-image-grid.is-three {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.ss-extra-image-grid.is-five {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}
.ss-extra-image-item {
  display: grid;
  gap: 4px;
  min-width: 0;
  color: var(--pp-field-value, var(--ss-color-ink));
  text-decoration: none;
}
.ss-extra-image-item img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: var(--pp-image-radius, 8px);
  border: 1px solid var(--pp-field-border, var(--ss-color-line));
  background: #fff;
}
.ss-extra-image-item span {
  overflow-wrap: anywhere;
  font-size: 12px;
  line-height: 1.35;
}
.ss-extra-display-row audio,
.ss-extra-display-row video {
  width: 100%;
  max-height: 220px;
}
.ss-publish-preview-doc.theme-card {
  padding: 12px;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(18,59,58,.1);
}
.ss-publish-preview-doc.theme-news h2 {
  font-size: 22px;
  line-height: 1.25;
}
.ss-publish-preview-doc.theme-news header {
  border-bottom-color: var(--ss-color-primary);
}
.ss-native-select {
  width: 100%;
  min-height: 32px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--ss-color-ink);
  padding: 0 9px;
  font-size: 14px;
  outline: none;
}
.ss-multi-select {
  min-height: 86px;
  padding: 8px;
}
.ss-cs-filter-panel {
  display: grid;
  gap: 8px;
  padding: 12px;
  margin-bottom: 12px;
  border: 1px solid var(--ss-color-line);
  border-radius: var(--ss-radius-card);
  background: #fff;
}
.ss-cs-filter-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 8px;
  align-items: center;
}
.ss-query-btn {
  min-width: 72px;
  height: 34px;
  white-space: nowrap;
}
.ss-cs-filter-row .van-cell {
  min-width: 0;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
}
.ss-compact-dict-row {
  display: grid;
  grid-template-columns: 1.1fr 1fr .95fr .9fr 72px 84px 76px;
  gap: 6px;
  align-items: center;
  min-height: 38px;
  padding: 5px 0;
  border-bottom: 1px solid rgba(217,225,220,.75);
}
.ss-compact-tag-row {
  grid-template-columns: 1.4fr 82px 82px 84px 76px;
}
.ss-compact-app-menu-row {
  grid-template-columns: .8fr .9fr .7fr .8fr .8fr 1.25fr 62px 70px 68px;
}
.ss-compact-dict-head {
  min-height: 28px;
  color: var(--ss-color-muted);
  font-size: 11px;
  font-weight: 900;
}
.ss-compact-dict-row .van-cell {
  min-height: 32px;
  padding: 3px 7px;
  border: 1px solid #d9e1dc;
  border-radius: 7px;
}
.ss-compact-dict-row .van-field__label {
  display: none;
}
.ss-compact-dict-row .van-checkbox {
  justify-content: center;
}
.ss-admin-inline-form {
  display: grid;
  gap: 8px;
  align-items: center;
  margin: 8px 0 12px;
}
.ss-admin-inline-form .van-cell {
  min-width: 0;
  min-height: 32px;
  padding: 4px 8px;
  border: 1px solid #d9e1dc;
  border-radius: 7px;
}
.ss-app-menu-add-row,
.ss-app-menu-edit-row {
  grid-template-columns: .8fr .9fr .7fr .8fr .8fr 1.25fr 64px 70px 70px;
}
.ss-app-menu-panel {
  font-size: 12px;
}
.ss-app-menu-panel .ss-section-head {
  margin-bottom: 8px;
}
.ss-app-menu-panel .ss-section-head h3 {
  margin: 0 0 2px;
  font-size: 15px;
}
.ss-app-menu-panel .ss-subtitle {
  margin: 0;
  font-size: 11px;
}
.ss-app-menu-head .ss-actions {
  gap: 6px;
}
.ss-app-menu-table {
  overflow-x: auto;
  padding-bottom: 2px;
}
.ss-plain-list-row {
  display: grid;
  gap: 6px;
  align-items: center;
  min-height: 38px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(217,225,220,.75);
}
.ss-plain-list-row span {
  min-width: 0;
  color: var(--ss-color-ink);
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ss-app-menu-list-row {
  grid-template-columns: .8fr .9fr .7fr .8fr .8fr 1.25fr 62px 62px 112px;
  min-width: 900px;
}
.ss-app-menu-row {
  min-height: 34px;
  padding: 5px 0;
}
.ss-app-menu-row span,
.ss-app-menu-row .van-button {
  font-size: 12px;
}
.ss-app-menu-row .van-button {
  height: 26px;
  padding: 0 8px;
}
.ss-admin-form-dialog {
  width: min(520px, calc(100vw - 24px)) !important;
  border-radius: 8px;
}
.ss-admin-form-dialog .van-dialog__content {
  max-height: min(82vh, 680px);
  overflow-y: auto;
}
.ss-app-menu-editor {
  padding: 12px;
}
.ss-dialog-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--ss-color-line);
  margin-bottom: 10px;
}
.ss-dialog-title-row b {
  color: var(--ss-color-ink);
  font-size: 15px;
  line-height: 1.2;
}
.ss-app-menu-form-grid {
  grid-template-columns: 1fr;
  gap: 7px;
}
.ss-app-menu-form-grid .van-cell {
  min-height: 34px;
  padding: 4px 7px;
  border: 1px solid var(--ss-color-line);
  border-radius: 7px;
}
.ss-app-menu-form-grid .van-field__label {
  width: 72px;
  flex-basis: 72px;
  font-size: 12px !important;
}
.ss-app-menu-form-grid .van-field__control,
.ss-app-menu-form-grid input {
  font-size: 13px !important;
}
.ss-popup-check {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 4px 7px;
  border: 1px solid var(--ss-color-line);
  border-radius: 7px;
  background: #fff;
}
.ss-popup-check span {
  width: 72px;
  text-align: right;
  color: #5b6f69;
  font-size: 12px;
  font-weight: 900;
}
.ss-app-menu-editor-actions {
  justify-content: flex-end;
  margin-top: 10px;
}
.ss-app-menu-editor-actions .van-button {
  min-width: 72px;
  height: 30px;
}
.ss-pager {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin: 10px 0 4px;
  color: var(--ss-color-muted);
  font-size: 12px;
  font-weight: 800;
}
.ss-pager button {
  min-width: 58px;
  height: 28px;
  border: 1px solid var(--ss-color-line);
  border-radius: 7px;
  background: #fff;
  color: var(--ss-color-primary);
  font-size: 12px;
  font-weight: 900;
}
.ss-pager button:disabled {
  color: #a7b3af;
  background: #f5f7f6;
}
.ss-row-detail-panel {
  padding: 12px;
}
.ss-row-detail-list {
  display: grid;
  gap: 6px;
  max-height: min(72vh, 620px);
  overflow-y: auto;
}
.ss-row-detail-line {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 8px;
  padding: 7px 0;
  border-bottom: 1px solid var(--ss-color-line);
}
.ss-row-detail-line span {
  color: var(--ss-color-muted);
  font-size: 12px;
  font-weight: 900;
  text-align: right;
}
.ss-row-detail-line pre {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--ss-color-ink);
  font-size: 12px;
  line-height: 1.45;
  font-family: Consolas, "Microsoft YaHei", monospace;
}
.ss-row-actions {
  justify-content: flex-end;
  gap: 5px;
}
.ss-status-on {
  color: var(--ss-color-primary) !important;
  font-weight: 800;
}
.ss-status-off {
  color: var(--ss-color-muted) !important;
}
.ss-admin-edit-panel {
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  background: #fff;
}
.ss-setting-check {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fff;
}
.ss-setting-check b {
  color: var(--ss-color-ink);
  font-size: 14px;
}
.ss-setting-check p {
  margin: 4px 0 0;
  color: #65736f;
  font-size: 12px;
}
.ss-permission-check-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 8px 0 12px;
}
.ss-permission-check-grid .van-checkbox {
  min-height: 34px;
  padding: 6px 8px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
  background: #fff;
}
.ss-list-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 12px;
  align-items: center;
}
.ss-list-filter .van-cell {
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  flex: 0 1 220px;
  min-width: 210px;
  max-width: 360px;
}
.ss-list-filter .van-cell:first-child {
  flex: 1 1 280px;
  min-width: 260px;
  max-width: 520px;
}
.ss-list-filter .van-field--label-top,
.ss-list-filter .van-field {
  white-space: nowrap;
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}
.ss-list-filter .van-field__label {
  width: auto !important;
  min-width: 56px;
  flex: 0 0 auto !important;
  white-space: nowrap;
  padding: 2px 6px;
  border-radius: 5px;
  background: #eef6f2;
  color: #557069 !important;
  font-size: 12px !important;
}
.ss-list-filter .van-field__body {
  min-width: 124px;
  flex: 1 1 auto;
  padding: 0 7px;
}
.ss-list-filter input[type="date"],
.ss-list-filter input[type="month"],
.ss-list-filter .ss-native-select {
  min-width: 126px;
  white-space: nowrap;
}
.ss-admin-panel .van-cell .van-field__body,
.ss-admin-panel .van-field .van-field__body,
.ss-list-filter .van-field__body,
.ss-admin-inline-form .van-field__body,
.ss-compact-dict-row .van-field__body,
.ss-cs-filter-row .van-field__body,
.ss-copy-template-dialog .van-field__body,
.ss-editor-block .van-field__body {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ss-admin-panel .ss-native-select,
.ss-list-filter .ss-native-select,
.ss-admin-inline-form .ss-native-select,
.ss-cs-filter-row .ss-native-select,
.ss-editor-block .ss-native-select {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.ss-theme-edit-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0;
}
.ss-theme-edit-grid label {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 6px;
  align-items: center;
  padding: 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fff;
}
.ss-theme-edit-grid span,
.ss-theme-edit-grid b {
  color: var(--ss-color-ink);
  font-size: 12px;
}
.ss-theme-edit-grid span {
  display: flex;
  justify-content: flex-end;
  gap: 3px;
  color: #5b6f69;
  font-weight: 900;
  text-align: right;
}
.ss-theme-edit-grid span::before {
  content: "";
  color: #8fa19b;
  font-size: 10px;
}
.ss-theme-edit-grid label:nth-child(-n+3) span::before {
  content: "*";
  color: #d64545;
}
.ss-theme-edit-grid span::after {
  content: ":";
  color: #7f908a;
}
.ss-theme-edit-grid b {
  grid-column: 2;
}
.ss-theme-edit-grid input {
  width: 100%;
  height: 34px;
  border: 0;
  background: transparent;
}
.ss-theme-live {
  margin: 12px 0;
  background: var(--ss-color-card);
  color: var(--ss-color-ink);
}
.ss-theme-live button {
  border: 0;
  border-radius: var(--ss-radius-card);
  background: var(--ss-color-primary);
  color: #fff;
  padding: 9px 14px;
  font-weight: 900;
}
.ss-theme-preview-tip {
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid var(--ss-color-primary);
  border-radius: 8px;
  background: rgba(27,127,111,.08);
  color: var(--ss-color-ink);
  font-size: 12px;
  font-weight: 900;
}
.ss-theme-preview-tip button {
  border: 0;
  background: transparent;
  color: var(--ss-color-primary);
  font-size: 12px;
  font-weight: 900;
}
.ss-theme-preview.theme-clean {
  background: linear-gradient(135deg, #ffffff, #eef7f3);
}
.ss-theme-preview.theme-card {
  background: linear-gradient(135deg, #fffdf7 0 48%, #1b7f6f 48% 52%, #eef7f3 52%);
}
.ss-theme-preview.theme-news {
  background: linear-gradient(135deg, #123b3a, #1b7f6f);
}
.ss-cs-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) 260px;
  gap: 12px;
  align-items: start;
}
.ss-cs-toolbar {
  display: grid;
  grid-template-columns: auto 130px minmax(180px, 260px) 150px 150px auto;
  gap: 8px;
  align-items: center;
}
.ss-cs-toolbar h3 {
  margin: 0;
  white-space: nowrap;
}
.ss-cs-toolbar .van-cell {
  min-width: 0;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
}
.ss-cs-toolbar .ss-actions {
  justify-content: flex-end;
  white-space: nowrap;
}
.ss-cs-sessions,
.ss-cs-agents {
  display: grid;
  gap: 10px;
}
.ss-cs-session {
  cursor: pointer;
  padding: 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fff;
}
.ss-cs-session.active {
  border-color: var(--ss-color-primary);
  background: rgba(27, 127, 111, .08);
}
.ss-cs-session b,
.ss-cs-session p,
.ss-cs-session span {
  display: block;
  margin: 0 0 4px;
}
.ss-cs-session span {
  color: #65736f;
  font-size: 12px;
}
.ss-cs-chat {
  min-height: 620px;
}
.ss-cs-message-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 360px;
  max-height: 520px;
  overflow: auto;
  padding: 8px;
  background: #f7faf8;
  border-radius: 8px;
}
.ss-private-chat-page {
  display: grid;
  gap: 10px;
}
.ss-private-chat-list {
  min-height: 54vh;
  max-height: none;
  overflow: visible;
  background: #f4f7f5;
}
.ss-cs-msg,
.ss-chat-msg {
  display: flex;
}
.ss-chat-msg > div {
  max-width: 78%;
  padding: 9px 11px;
  border: 1px solid #dbe5df;
  border-radius: 8px;
  background: #fff;
}
.ss-chat-msg.mine > div {
  background: var(--ss-color-primary);
  border-color: var(--ss-color-primary);
  color: #fff;
}
.ss-chat-msg.mine span {
  color: rgba(255,255,255,.72);
}
.ss-private-chat-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 72px;
  gap: 8px;
  align-items: end;
}
.ss-private-chat-composer .van-cell {
  padding: 6px 8px;
  border: 1px solid var(--ss-color-line);
  border-radius: 8px;
}
.ss-cs-msg {
  max-width: 78%;
}
.ss-cs-msg.mine,
.ss-chat-msg.mine {
  align-self: flex-end;
  justify-content: flex-end;
  margin-left: auto;
}
.ss-cs-msg b,
.ss-cs-msg p,
.ss-cs-msg em {
  display: block;
  margin: 0;
}
.ss-cs-msg {
  padding: 10px 12px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #d9e1dc;
}
.ss-cs-msg.agent {
  border-left: 4px solid #2c7be5;
}
.ss-cs-msg.admin {
  border-left: 4px solid #d97706;
}
.ss-cs-msg.user {
  border-left: 4px solid var(--ss-color-primary);
}
.ss-cs-msg.mine {
  background: var(--ss-color-primary);
  color: #fff;
}
.ss-cs-msg.mine em,
.ss-cs-msg.mine a {
  color: #eefdf8;
}
.ss-cs-msg span,
.ss-cs-msg em {
  color: #65736f;
  font-size: 12px;
  font-style: normal;
}
.ss-cs-compose {
  margin-top: 10px;
}
.ss-publish-editor-panel .ss-form-grid {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 8px;
}
.ss-publish-editor-panel .van-field {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  min-width: 0;
}
.ss-publish-editor-panel .van-field__label {
  width: 74px !important;
  flex: 0 0 74px !important;
  white-space: nowrap !important;
}
.ss-publish-editor-panel .van-field__body {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.ss-publish-editor-panel .van-field__control,
.ss-publish-editor-panel .van-field__input,
.ss-publish-editor-panel .ss-native-select {
  width: 100% !important;
  min-width: 0 !important;
}
.ss-publish-editor-panel > .van-field {
  align-items: flex-start !important;
}
.ss-publish-editor-panel > .van-field .van-field__body {
  min-height: 72px;
}
.ss-extra-field-panel {
  display: grid;
  gap: 8px;
  margin-top: 10px;
  padding: 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fbfdfc;
}
.ss-extra-field-panel .ss-section-head {
  min-height: 30px;
  margin: 0;
}
.ss-extra-field-panel h4 {
  margin: 0;
  font-size: 14px;
  color: var(--ss-color-ink);
}
.ss-extra-field-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(160px, 1fr)) 92px;
  gap: 6px;
  align-items: center;
  padding: 8px;
  border: 1px solid #e1e8e5;
  border-radius: 8px;
  background: #fff;
}
.ss-extra-field-row > .ss-extra-values,
.ss-extra-field-row > .ss-danger-text,
.ss-extra-field-row > .ss-link-btn {
  grid-column: 1 / -1;
}
.ss-extra-values {
  display: grid;
  gap: 6px;
}
.ss-extra-value-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) 72px;
  gap: 6px;
  align-items: center;
}
.ss-app-extra-row {
  display: grid;
  gap: 6px;
  padding: 8px;
  border: 1px solid #e1e8e5;
  border-radius: 8px;
  background: #fff;
}
.ss-app-extra-row .van-cell {
  min-height: 32px;
  padding: 4px 6px;
}
.ss-danger-text {
  color: #c2410c !important;
}
.ss-extra-field-panel .van-cell {
  min-height: 32px;
  padding: 4px 6px;
}
@media (max-width: 900px) {
  .ss-extra-field-row {
    grid-template-columns: 1fr;
  }
  .ss-extra-value-row {
    grid-template-columns: 1fr;
  }
  .ss-extra-image-grid.is-five {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .ss-publish-color-grid {
    grid-template-columns: 1fr;
  }
  .ss-ui-theme-config-grid {
    grid-template-columns: 1fr;
  }
  .ss-current-config-grid {
    grid-template-columns: 1fr;
  }
  .ss-subject-config-row {
    grid-template-columns: 1fr;
    align-items: stretch;
  }
  .ss-subject-main {
    grid-template-columns: auto auto;
  }
  .ss-subject-main p {
    grid-column: 1 / -1;
  }
  .ss-subject-meta,
  .ss-subject-config-row .ss-actions {
    justify-content: flex-start;
  }
}
.ss-setting-module-card {
  padding: 10px;
  border: 1px solid #d9e1dc;
  border-radius: 8px;
  background: #fbfdfb;
}
.ss-setting-module-card b {
  font-size: 14px;
  color: #173d39;
}
.ss-setting-module-card p,
.ss-setting-module-card small {
  display: block;
  margin: 4px 0 0;
  color: #6d7d77;
  font-size: 12px;
}
.ss-log-module-checks {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}
.ss-mini-check {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 26px;
  padding: 4px 7px;
  border: 1px solid #d9e1dc;
  border-radius: 6px;
  background: #fff;
  color: #173d39;
  font-size: 12px;
  white-space: nowrap;
}
@media (max-width: 900px) {
  .ss-theme-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .ss-cs-layout {
    grid-template-columns: 1fr;
  }
  .ss-cs-toolbar {
    grid-template-columns: auto 130px minmax(180px, 1fr) 140px 140px auto;
  }
  .ss-list-filter .van-cell { flex-basis: 220px; min-width: 210px; }
  .ss-compact-app-menu-row { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ss-cs-toolbar {
    grid-template-columns: 1fr 1fr;
  }
  .ss-cs-toolbar h3,
  .ss-cs-toolbar .ss-actions {
    grid-column: 1 / -1;
  }
}
@media (max-width: 640px) {
  .ss-list-filter .van-cell,
  .ss-list-filter .van-cell:first-child { flex-basis: 100%; min-width: 100%; max-width: 100%; }
}
.ss-school-dict-stack {
  display: grid;
  gap: 12px;
}
.ss-dict-page-block {
  border: 1px solid #dce9e4;
  border-radius: 8px;
  background: #fff;
  padding: 10px;
}
.ss-dict-page-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.ss-dict-page-head h4 {
  margin: 0 0 3px;
  font-size: 14px;
  color: var(--ss-color-card-title);
}
.ss-dict-page-head span {
  display: block;
  color: var(--ss-color-muted);
  font-size: 11px;
}
.ss-dict-table {
  display: grid;
  gap: 6px;
  overflow-x: auto;
}
.ss-dict-table-row {
  display: grid;
  grid-template-columns: 60px minmax(120px, 1.2fr) minmax(90px, 1fr) minmax(90px, 1fr) minmax(80px, .9fr) 64px 64px;
  align-items: center;
  gap: 8px;
  min-width: 760px;
  padding: 7px 8px;
  border-radius: 6px;
  background: #f8fbfa;
  color: #304843;
  font-size: 12px;
}
.ss-dict-table-head {
  background: #e9f4f0;
  color: #4d6760;
  font-weight: 800;
}
.ss-dict-table-row b {
  color: #143b36;
  font-size: 12px;
}
.ss-empty-line {
  padding: 12px;
  border-radius: 6px;
  background: #f8fbfa;
  color: var(--ss-color-muted);
  font-size: 12px;
}
.ss-admin-subpage {
  min-height: 100vh;
  background: #f5f8f7;
  display: flex;
  flex-direction: column;
}
.ss-admin-subpage-top {
  min-height: 54px;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) 72px;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: #123b3a;
  color: #fff;
}
.ss-admin-subpage-top h3 {
  margin: 0;
  text-align: center;
  font-size: 16px;
}
.ss-admin-subpage-top span {
  text-align: right;
  font-size: 12px;
  opacity: .8;
}
.ss-admin-subpage-body {
  width: min(760px, calc(100% - 28px));
  margin: 14px auto 80px;
}
.ss-admin-subpage-actions {
  position: sticky;
  bottom: 0;
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 10px 14px;
  background: rgba(245, 248, 247, .96);
  border-top: 1px solid #dce9e4;
}
.ss-editor-form {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid #dce9e4;
  border-radius: 8px;
  background: #fff;
}
.ss-editor-form .van-cell {
  border: 1px solid #dfe9e5;
  border-radius: 6px;
  padding: 7px 10px;
}
.ss-editor-form .van-field__label {
  width: 96px;
  color: #4d6760;
  font-size: 13px;
  text-align: right;
}
.ss-editor-form .van-field__label::after {
  content: ":";
}
.ss-editor-form .van-field__control,
.ss-editor-form .ss-native-select {
  color: #143b36;
  font-size: 13px;
}
