:root {
  --ink: #1c1a17;
  --muted: #857b72;
  --paper: #f5f1eb;
  --line: #e5ddd3;
  --gold: #b98754;
  --violet: #7f6ba8;
  --white: #fff;
  --danger: #b94b42;
}

/* Academic operations center */
.academic-shell {
  display: grid;
  gap: 18px;
}
.academic-tabs {
  display: grid;
  grid-template-columns: repeat(10, minmax(98px, 1fr));
  gap: 8px;
  padding: 10px;
  overflow-x: auto;
  border: 1px solid #E8E0D5;
  border-radius: 20px;
  background: rgba(255, 255, 255, .82);
}
.academic-tabs button {
  min-width: 98px;
  padding: 13px 12px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: #736A61;
  text-align: left;
}
.academic-tabs button strong,
.academic-tabs button small {
  display: block;
}
.academic-tabs button strong { font-size: 13px; }
.academic-tabs button small { margin-top: 4px; color: #A79D91; font-size: 10px; }
.academic-tabs button.active {
  background: #1F1C18;
  color: #fff;
  box-shadow: 0 9px 24px rgba(31, 28, 24, .16);
}
.academic-tabs button.active small { color: #D7CDBF; }
.academic-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 190px;
  padding: 34px 38px;
  overflow: hidden;
  border-radius: 26px;
  background:
    radial-gradient(circle at 86% 16%, rgba(255, 255, 255, .7), transparent 18%),
    linear-gradient(125deg, #1C2724 0%, #31443E 58%, #9A7255 150%);
  color: #fff;
  position: relative;
}
.academic-hero::after {
  position: absolute;
  right: 150px;
  bottom: -95px;
  width: 240px;
  height: 240px;
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: 50%;
  content: "";
}
.academic-hero .eyebrow { color: #D7C1A6; }
.academic-hero h2 {
  max-width: 720px;
  margin: 12px 0 10px;
  font-family: "Songti SC", serif;
  font-size: clamp(28px, 3vw, 44px);
  font-weight: 600;
  line-height: 1.18;
}
.academic-hero p { max-width: 760px; margin: 0; color: rgba(255,255,255,.68); line-height: 1.75; }
.academic-hero-mark {
  display: grid;
  flex: 0 0 130px;
  place-items: center;
  padding: 18px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(12px);
  text-align: center;
}
.academic-hero-mark b { font-family: Georgia, serif; font-size: 44px; line-height: 1; }
.academic-hero-mark span { margin-top: 6px; color: #E5D5C2; font-size: 12px; }
.academic-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}
.academic-kpi-grid > div {
  padding: 22px;
  border: 1px solid #ECE4D9;
  border-radius: 18px;
  background: #fff;
}
.academic-kpi-grid small,
.academic-kpi-grid strong,
.academic-kpi-grid span { display: block; }
.academic-kpi-grid small { color: #8D8379; font-size: 12px; }
.academic-kpi-grid strong { margin: 10px 0 6px; font-family: Georgia, serif; font-size: 34px; font-weight: 500; }
.academic-kpi-grid span { color: #A69B8E; font-size: 11px; }
.academic-overview-grid,
.academic-resource-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(320px, .75fr);
  gap: 16px;
}
.academic-today,
.academic-alerts { padding: 24px; }
.academic-session-row {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) 130px 62px;
  align-items: center;
  gap: 15px;
  padding: 15px 0;
  border-top: 1px solid #F1ECE5;
}
.academic-time b,
.academic-time span { display: block; }
.academic-time b { font-size: 15px; }
.academic-time span { margin-top: 3px; color: #A0978D; font-size: 11px; }
.academic-session-main strong,
.academic-session-main small { display: block; }
.academic-session-main strong { font-size: 14px; }
.academic-session-main small { margin-top: 5px; color: #91877C; font-size: 11px; }
.academic-session-progress span { color: #7E746A; font-size: 11px; }
.academic-session-progress i,
.academic-load i,
.academic-seat-bar {
  display: block;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #EEE9E2;
}
.academic-session-progress i { margin-top: 7px; }
.academic-session-progress em,
.academic-load em,
.academic-seat-bar i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #8E684D;
}
.academic-session-row button,
.academic-class-footer button {
  padding: 8px 12px;
  border: 1px solid #E2D8CD;
  border-radius: 999px;
  background: #fff;
  color: #574B41;
  font-size: 11px;
}
.academic-alert {
  display: flex;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid #F1ECE5;
}
.academic-alert > span {
  display: grid;
  flex: 0 0 34px;
  height: 34px;
  place-items: center;
  border-radius: 12px;
  background: #F2ECE4;
  color: #8B674D;
  font-weight: 700;
}
.academic-alert.high > span { background: #FBE9E5; color: #A94634; }
.academic-alert strong,
.academic-alert small { display: block; }
.academic-alert strong { font-size: 12px; }
.academic-alert small { margin-top: 4px; color: #978C81; font-size: 10px; line-height: 1.55; }
.academic-load { margin-top: 20px; padding-top: 18px; border-top: 1px solid #EDE7DF; }
.academic-load h3 { margin: 0 0 12px; font-size: 13px; }
.academic-load > div {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
  color: #776D63;
  font-size: 10px;
}
.academic-load b { text-align: right; font-size: 10px; }
.academic-class-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
.academic-class-card {
  position: relative;
  padding: 22px;
  overflow: hidden;
  border: 1px solid #E9E1D7;
  border-radius: 20px;
  background: linear-gradient(160deg, #fff 0%, #FCF9F5 100%);
}
.academic-class-card::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--academic-color);
  content: "";
}
.academic-class-top,
.academic-class-number,
.academic-class-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.academic-class-top > span { color: var(--academic-color); font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.academic-class-card h3 { min-height: 48px; margin: 16px 0 7px; font-size: 18px; line-height: 1.4; }
.academic-class-card p { min-height: 34px; margin: 0; color: #8C8278; font-size: 11px; line-height: 1.6; }
.academic-class-number { margin: 18px 0 9px; color: #81776D; font-size: 11px; }
.academic-class-number b { color: #28231F; font-family: Georgia, serif; font-size: 20px; }
.academic-seat-bar { margin-bottom: 17px; }
.academic-seat-bar i { background: var(--academic-color); }
.academic-class-footer small { color: #9A9085; font-size: 10px; }
.academic-schedule-panel { padding: 22px; }
.academic-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(110px, 1fr));
  gap: 9px;
  overflow-x: auto;
}
.academic-day {
  min-height: 360px;
  padding: 8px;
  border-radius: 16px;
  background: #F8F5F0;
}
.academic-day-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 9px 13px;
  color: #8B8177;
  font-size: 11px;
}
.academic-day-head b { font-family: Georgia, serif; font-size: 20px; }
.academic-day-head.today { color: #A0503A; }
.academic-day-list { display: grid; gap: 8px; }
.academic-session-card {
  width: 100%;
  padding: 12px;
  border: 0;
  border-left: 3px solid var(--academic-color);
  border-radius: 10px;
  background: #fff;
  color: #332B25;
  text-align: left;
}
.academic-session-card b,
.academic-session-card span,
.academic-session-card small { display: block; }
.academic-session-card b { font-size: 11px; line-height: 1.45; }
.academic-session-card span { margin-top: 7px; color: #8F857B; font-size: 10px; }
.academic-session-card small { margin-top: 6px; color: #A07556; font-size: 9px; }
.academic-session-actions { display: flex; gap: 4px; margin-top: 8px; }
.academic-session-actions button { padding: 4px 7px; border: 1px solid #E7DED3; border-radius: 7px; background: #fff; color: #6A5B50; font-size: 8px; }
.academic-session-actions button.danger { border-color: #EBCFC7; color: #A45845; }
.academic-session-select { display: flex; align-items: center; gap: 5px; margin-bottom: 8px; color: #8A6751; font-size: 9px; }
.academic-batch-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 14px 0;
  padding: 11px 14px;
  border: 1px solid #E7D9CA;
  border-radius: 12px;
  background: #FFF9F3;
  color: #746355;
  font-size: 11px;
}
.academic-batch-toolbar button {
  padding: 7px 12px;
  border: 0;
  border-radius: 999px;
  background: #8E4F3C;
  color: #fff;
  font-size: 10px;
}
.academic-batch-toolbar button:disabled { opacity: .45; }
.academic-recurring-fields { padding: 14px; border-radius: 12px; background: #F8F5F0; }
.academic-recurring-fields[hidden],
[data-academic-single-field][hidden] { display: none !important; }
.academic-consumption-filter { margin: 4px 0 14px; padding: 0; border: 0; background: transparent; }
.academic-consumption-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}
.academic-consumption-summary span {
  padding: 8px 11px;
  border-radius: 999px;
  background: #F7F2EC;
  color: #817469;
  font-size: 10px;
}
.academic-consumption-summary b { color: #3F332B; font-family: Georgia, serif; font-size: 14px; }
.scroll-picker-control {
  display: inline-flex;
  width: 100%;
  min-width: 0;
  gap: 4px;
}
.scroll-picker-control select {
  min-width: 0;
  flex: 1 1 0;
  height: 36px;
  padding: 0 7px;
  border: 1px solid #E3D9CD;
  border-radius: 9px;
  background: #fff;
  color: #3B332C;
  font-size: 11px;
  scrollbar-width: thin;
}
.scroll-picker-control select:focus {
  border-color: #8B6A53;
  outline: 2px solid rgba(139, 106, 83, .12);
}
.char-count {
  display: block;
  margin-top: 6px;
  color: #8A7D72;
  font-size: 10px;
  font-weight: 400;
  text-align: right;
}
.store-course-picker {
  margin: 14px 0;
  padding: 15px;
  border: 1px solid #E6DCD1;
  border-radius: 14px;
  background: #FCF9F5;
}
.store-course-picker-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.store-course-picker-head strong { color: #3C332C; font-size: 12px; }
.store-course-picker-head span { color: #958A80; font-size: 10px; }
.store-course-picker > input {
  width: 100%;
  min-height: 38px;
  padding: 8px 11px;
  border: 1px solid #E3D8CC;
  border-radius: 9px;
  background: #fff;
  box-sizing: border-box;
}
.store-course-candidate-list {
  display: grid;
  max-height: 360px;
  gap: 6px;
  margin-top: 10px;
  overflow-y: auto;
}
.store-course-candidate {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 11px;
  border: 1px solid #EEE6DD;
  border-radius: 10px;
  background: #fff;
}
.store-course-candidate strong,
.store-course-candidate small { display: block; }
.store-course-candidate strong { color: #433930; font-size: 11px; }
.store-course-candidate small { margin-top: 3px; color: #978C82; font-size: 9px; }
.academic-day-empty { padding: 25px 0; color: #B4AAA0; font-size: 10px; text-align: center; }
.academic-attendance-session-list { display: grid; gap: 8px; }
.academic-attendance-session-list button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 18px;
  border: 1px solid #ECE5DC;
  border-radius: 14px;
  background: #FFFDFC;
  color: #352E28;
  text-align: left;
}
.academic-attendance-session-list b,
.academic-attendance-session-list small { display: block; }
.academic-attendance-session-list small { margin-top: 5px; color: #91877C; font-size: 11px; }
.academic-attendance-session-list em { color: #9A704F; font-size: 11px; font-style: normal; }
.academic-attendance-tools { display: flex; align-items: center; gap: 8px; padding: 12px 0 16px; color: #8F857A; font-size: 11px; }
.academic-attendance-tools button {
  padding: 7px 12px;
  border: 1px solid #E8DED2;
  border-radius: 999px;
  background: #fff;
  color: #665A4E;
  font-size: 10px;
}
.academic-attendance-list { display: grid; gap: 7px; }
.academic-leave-approvals { margin-top: 20px; padding-top: 18px; border-top: 1px solid #EEE7DE; }
.compact-head { padding-bottom: 8px; }
.academic-leave-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  margin-top: 7px;
  border-radius: 11px;
  background: #FFF9F4;
}
.academic-leave-card strong,
.academic-leave-card small { display: block; }
.academic-leave-card strong { font-size: 11px; }
.academic-leave-card small { margin-top: 4px; color: #94887D; font-size: 9px; }
.academic-leave-card button { padding: 5px 9px; border: 1px solid #E4D8CB; border-radius: 999px; background: #fff; color: #66594E; font-size: 9px; }
.academic-leave-card button.danger { border-color: #EACAC2; color: #A25442; }
.academic-attendance-row {
  display: grid;
  grid-template-columns: 38px minmax(160px, 1fr) 110px minmax(150px, .7fr);
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: 14px;
  background: #F9F6F2;
}
.academic-student-avatar {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #E9DFD2;
  color: #715A47;
  font-family: "Songti SC", serif;
  font-weight: 600;
}
.academic-attendance-row strong,
.academic-attendance-row small { display: block; }
.academic-attendance-row strong { font-size: 12px; }
.academic-attendance-row small { margin-top: 4px; color: #958A7F; font-size: 10px; }
.academic-attendance-row select,
.academic-attendance-row input {
  min-height: 35px;
  padding: 7px 9px;
  border: 1px solid #E3D9CD;
  border-radius: 9px;
  background: #fff;
  font-size: 11px;
}
.academic-resource-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) minmax(110px, .7fr);
  align-items: center;
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid #F0EBE4;
}
.academic-resource-row strong,
.academic-resource-row small { display: block; }
.academic-resource-row strong { font-size: 12px; }
.academic-resource-row small { margin-top: 4px; color: #978D82; font-size: 10px; }
.academic-resource-row > span { color: #7E746A; font-size: 10px; text-align: right; }
.academic-teacher-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.academic-teacher-actions > span { color: #7E746A; font-size: 10px; text-align: right; }
.academic-teacher-actions button {
  padding: 5px 9px;
  border: 1px solid #E2D7CA;
  border-radius: 999px;
  background: #fff;
  color: #705B48;
  font-size: 9px;
}
.academic-room-mark {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 11px;
  background: #E7EEE9;
  color: #526B5A;
  font-weight: 700;
}
.academic-rule-list,
.academic-log-list { display: grid; gap: 9px; }
.academic-rule-list > div,
.academic-log-list > div {
  display: flex;
  gap: 12px;
  padding: 12px;
  border-radius: 12px;
  background: #F9F6F2;
}
.academic-rule-list b {
  flex: 0 0 28px;
  color: #9D7557;
  font-family: Georgia, serif;
}
.academic-rule-list strong,
.academic-rule-list small,
.academic-log-list strong,
.academic-log-list small { display: block; }
.academic-rule-list strong,
.academic-log-list strong { font-size: 11px; }
.academic-rule-list small,
.academic-log-list small { margin-top: 4px; color: #958A7F; font-size: 10px; }
.academic-log-list > div > span {
  align-self: flex-start;
  padding: 4px 7px;
  border-radius: 6px;
  background: #EEE5DA;
  color: #795E49;
  font-size: 9px;
}
.academic-editor-modal { width: min(820px, calc(100vw - 32px)); }
.academic-editor-modal form { padding: 8px 24px 24px; }
.academic-editor-modal .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.academic-editor-modal .wide { grid-column: 1 / -1; }
.academic-editor-modal textarea { min-height: 90px; }
.empty-state.compact { padding: 48px 12px; }
.academic-appointment-alert {
  display: flex;
  align-items: center;
  gap: 13px;
  width: 100%;
  padding: 15px 18px;
  border: 1px solid #E4C9B7;
  border-radius: 16px;
  background: #FFF6EF;
  color: #4F4035;
  text-align: left;
}
.academic-appointment-alert > span {
  display: grid;
  width: 36px;
  height: 36px;
  place-items: center;
  border-radius: 50%;
  background: #B9644C;
  color: #fff;
  font: 600 16px Georgia, serif;
}
.academic-appointment-alert div { flex: 1; }
.academic-appointment-alert strong,
.academic-appointment-alert small { display: block; }
.academic-appointment-alert strong { font-size: 12px; }
.academic-appointment-alert small { margin-top: 4px; color: #947D6D; font-size: 10px; }
.academic-appointment-alert em { color: #9B6449; font-size: 10px; font-style: normal; }
.academic-appointment-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 195px;
  padding: 30px 34px;
  border-radius: 25px;
  background: linear-gradient(125deg, #1F2824, #3B4E46 58%, #8A674D);
  color: #fff;
}
.academic-appointment-hero h2 { margin: 10px 0 8px; font-family: "Songti SC", serif; font-size: 33px; font-weight: 600; }
.academic-appointment-hero p { max-width: 720px; margin: 0; color: rgba(255,255,255,.65); font-size: 12px; line-height: 1.7; }
.academic-appointment-hero .eyebrow { color: #DFC19C; }
.appointment-hero-counts { display: flex; gap: 9px; }
.appointment-hero-counts > div {
  min-width: 86px;
  padding: 15px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 14px;
  background: rgba(255,255,255,.07);
  text-align: center;
}
.appointment-hero-counts strong,
.appointment-hero-counts span { display: block; }
.appointment-hero-counts strong { font: 28px Georgia, serif; }
.appointment-hero-counts span { margin-top: 3px; color: rgba(255,255,255,.6); font-size: 9px; }
.appointment-list { display: grid; gap: 13px; }
.appointment-card {
  padding: 23px;
  border: 1px solid #E9E0D5;
  border-left: 4px solid #B89153;
  border-radius: 20px;
  background: #fff;
}
.appointment-card.confirmed { border-left-color: #65806D; }
.appointment-card.cancelled { border-left-color: #B65A48; }
.appointment-card-head,
.appointment-student,
.appointment-actions,
.appointment-ai-head { display: flex; align-items: center; justify-content: space-between; gap: 13px; }
.appointment-student { justify-content: flex-start; }
.appointment-student h3 { margin: 0; font-size: 16px; }
.appointment-student p { margin: 5px 0 0; color: #978C81; font-size: 10px; }
.appointment-facts { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; margin-top: 16px; }
.appointment-facts > div { padding: 10px 12px; border-radius: 10px; background: #F8F5F0; }
.appointment-facts small,
.appointment-facts strong { display: block; }
.appointment-facts small { color: #9B9085; font-size: 8px; }
.appointment-facts strong { margin-top: 4px; color: #51463D; font-size: 10px; }
.appointment-ai-brief { margin-top: 15px; padding: 16px; border-radius: 14px; background: #F4F1EB; }
.appointment-ai-head > span { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #263A33; color: #fff; font-size: 11px; font-weight: 700; }
.appointment-ai-head > div { flex: 1; }
.appointment-ai-head strong,
.appointment-ai-head small { display: block; }
.appointment-ai-head strong { font-size: 11px; }
.appointment-ai-head small { margin-top: 3px; color: #9D9185; font-size: 8px; }
.appointment-ai-brief > p { margin: 12px 0; color: #62564C; font-size: 11px; line-height: 1.7; }
.appointment-ai-columns { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.appointment-ai-columns > div { padding: 11px; border-radius: 10px; background: #fff; }
.appointment-ai-columns h4 { margin: 0 0 7px; color: #8C674D; font-size: 9px; }
.appointment-ai-columns span { display: block; margin-top: 5px; color: #756A60; font-size: 9px; line-height: 1.5; }
.appointment-ai-risks { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.appointment-ai-risks span { padding: 5px 8px; border-radius: 7px; background: #FFF0EA; color: #A15D46; font-size: 9px; }
.appointment-timeline { display: grid; gap: 7px; margin-top: 14px; }
.appointment-timeline > div { display: grid; grid-template-columns: 7px minmax(0,1fr) 110px; align-items: center; gap: 8px; color: #776C62; font-size: 9px; }
.appointment-timeline i { width: 6px; height: 6px; border-radius: 50%; background: #9A7355; }
.appointment-timeline small { color: #A1968B; font-size: 8px; text-align: right; }
.appointment-actions { justify-content: flex-end; margin-top: 15px; }
.appointment-actions button { margin: 0; padding: 8px 12px; border: 1px solid #E3D8CC; border-radius: 999px; background: #fff; color: #65564A; font-size: 10px; }
.appointment-actions .primary-small { border-color: #253B33; background: #253B33; color: #fff; }
.appointment-actions .danger { border-color: #E9C9C0; background: #FFF5F2; color: #A25745; }
.appointment-confirmed-reply { margin-top: 13px; padding: 10px 12px; border-radius: 9px; background: #EDF4EF; color: #597061; font-size: 10px; }

@media (max-width: 1180px) {
  .academic-tabs { grid-template-columns: repeat(5, minmax(118px, 1fr)); }
  .academic-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .academic-class-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .academic-overview-grid,
  .academic-resource-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .academic-hero { align-items: flex-start; flex-direction: column; gap: 22px; padding: 26px 22px; }
  .academic-hero-mark { width: 96px; height: 96px; flex-basis: 96px; }
  .academic-kpi-grid,
  .academic-class-grid { grid-template-columns: 1fr; }
  .academic-session-row { grid-template-columns: 65px minmax(0, 1fr) 55px; }
  .academic-session-progress { display: none; }
  .academic-attendance-row { grid-template-columns: 36px minmax(0, 1fr); }
  .academic-attendance-row select,
  .academic-attendance-row input { grid-column: 2; }
  .academic-editor-modal .form-grid { grid-template-columns: 1fr; }
  .academic-editor-modal .wide { grid-column: auto; }
  .academic-appointment-hero,
  .appointment-card-head,
  .appointment-actions { align-items: flex-start; flex-direction: column; }
  .appointment-hero-counts { width: 100%; }
  .appointment-hero-counts > div { flex: 1; }
  .appointment-facts,
  .appointment-ai-columns { grid-template-columns: 1fr; }
  .appointment-timeline > div { grid-template-columns: 7px minmax(0,1fr); }
  .appointment-timeline small { grid-column: 2; text-align: left; }
}
* { box-sizing: border-box; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background: var(--paper);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
.hidden { display: none !important; }

.login-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px;
  background:
    radial-gradient(circle at 12% 12%, rgba(127, 107, 168, .18), transparent 35%),
    radial-gradient(circle at 88% 86%, rgba(185, 135, 84, .2), transparent 40%),
    var(--paper);
}
.login-card {
  width: min(460px, 100%);
  padding: 44px;
  border: 1px solid var(--line);
  border-radius: 28px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 28px 80px rgba(56, 41, 30, .1);
}
.brand-mark { color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .24em; }

.brand-logo {
  display: block;
  width: auto;
  object-fit: contain;
}

.brand-logo-dark {
  height: 42px;
  margin-bottom: 18px;
}

.brand-logo-light {
  height: 44px;
}
.login-card h1 { margin: 14px 0 10px; font-family: "Songti SC", serif; font-size: 36px; }
.login-card p { margin: 0 0 30px; color: var(--muted); line-height: 1.7; }
.login-card label { display: block; margin-top: 18px; color: #5f5750; font-size: 13px; }
.login-card input {
  width: 100%;
  height: 50px;
  margin-top: 8px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  outline: none;
}
.login-card input:focus { border-color: var(--violet); }
.primary {
  width: 100%;
  height: 52px;
  margin-top: 24px;
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  color: #fff;
}
.form-error { min-height: 20px; margin-top: 14px; color: var(--danger); font-size: 13px; }

.app-shell { min-height: 100vh; display: flex; }
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: 244px;
  display: flex;
  flex-direction: column;
  padding: 28px 18px;
  background: #211d22;
  color: #fff;
}
.brand { padding: 4px 12px 30px; border-bottom: 1px solid rgba(255,255,255,.09); }
.brand strong { display: block; margin-top: 14px; font-family: "Songti SC", serif; font-size: 25px; }
.brand small { display: block; margin-top: 5px; color: rgba(255,255,255,.45); }
#nav { margin-top: 22px; }
.nav-group-tabs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 15px;
  background: rgba(255,255,255,.035);
}
#nav .nav-group-tab {
  height: 34px;
  justify-content: center;
  padding: 0 6px;
  border-radius: 10px;
  background: transparent;
  color: rgba(255,255,255,.5);
  font-size: 11px;
}
#nav .nav-group-tab.active {
  background: rgba(198,162,122,.22);
  color: #F5E8D8;
}
.nav-view-list {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}
#nav button {
  display: flex;
  align-items: center;
  gap: 12px;
  height: 46px;
  padding: 0 14px;
  border: 0;
  border-radius: 13px;
  background: transparent;
  color: rgba(255,255,255,.64);
  text-align: left;
}
#nav button span { color: rgba(255,255,255,.3); font-size: 11px; }
#nav button.active, #nav button:hover { background: rgba(255,255,255,.1); color: #fff; }
.logout {
  height: 44px;
  margin-top: auto;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 999px;
  background: transparent;
  color: rgba(255,255,255,.62);
}
.preview-switch {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  margin: 0 0 10px;
  padding: 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 14px;
  background: rgba(255,255,255,.035);
}
.preview-switch > span {
  grid-column: 1 / -1;
  color: #938A80;
  font-size: 10px;
  letter-spacing: .08em;
}
.preview-switch button {
  padding: 8px 6px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 9px;
  background: transparent;
  color: #B7AEA5;
  font-size: 11px;
}
.preview-switch button.active {
  border-color: #A97B57;
  background: #A97B57;
  color: #fff;
}

.workspace { width: calc(100% - 244px); margin-left: 244px; padding: 30px 38px 60px; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.eyebrow { color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .22em; }
.topbar h1 { margin: 8px 0 0; font-family: "Songti SC", serif; font-size: 34px; font-weight: 600; }
.top-actions { display: flex; align-items: center; gap: 18px; }
.store-filter { position: relative; color: var(--muted); font-size: 12px; }
.scope-picker { position: relative; display: flex; align-items: center; gap: 8px; margin-top: 6px; }
.scope-picker > input {
  width: 250px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  outline: none;
}
.scope-picker > input:focus { border-color: var(--violet); }
.scope-picker > button {
  height: 40px;
  padding: 0 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  color: #665f58;
}
.scope-menu {
  position: absolute;
  top: 46px;
  right: 0;
  z-index: 20;
  width: min(420px, 80vw);
  max-height: 330px;
  overflow-y: auto;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 48px rgba(48, 35, 27, .16);
}
.scope-menu button {
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: var(--ink);
  text-align: left;
}
.scope-menu button:hover { background: #f6f1eb; }
.scope-menu button small { display: block; margin-top: 4px; color: var(--muted); }
.scope-meta { padding: 8px 12px 4px; color: var(--muted); font-size: 11px; }
.account {
  position: relative;
  padding: 7px 9px 7px 18px;
  border: 0;
  border-left: 1px solid var(--line);
  background: transparent;
  text-align: right;
}
.account span { display: block; font-size: 14px; }
.account small { color: var(--muted); font-size: 11px; }
.account-settings-mark {
  display: block;
  margin-top: 3px;
  color: #aa8668;
  font-size: 8px;
  font-style: normal;
  letter-spacing: .08em;
}

.content { margin-top: 32px; }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.dashboard-stats { margin-top: 20px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.dashboard-filter { grid-template-columns: minmax(180px, 1fr) repeat(2, minmax(140px, .7fr)) auto; }
.stat-card, .panel, .data-card {
  border: 1px solid var(--line);
  border-radius: 22px;
  background: rgba(255,255,255,.84);
}
.stat-card { padding: 24px; }
.stat-card small { color: var(--muted); }
.stat-card strong { display: block; margin-top: 16px; font-family: "Songti SC", serif; font-size: 34px; font-weight: 600; }

.panel { margin-top: 20px; padding: 24px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 20px; }
.panel-title { font-size: 18px; font-weight: 600; }
.panel-subtitle { margin-top: 5px; color: var(--muted); font-size: 12px; }
.list { display: grid; gap: 12px; }
.data-card { padding: 20px; }
.data-top { display: flex; justify-content: space-between; gap: 20px; }
.data-title { font-size: 15px; font-weight: 600; }
.data-meta { margin-top: 7px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.compact-details { margin-top: 7px; color: var(--muted); font-size: 12px; }
.compact-details summary { cursor: pointer; }
.badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 999px; background: #efeaf7; color: #6d5c92; font-size: 11px; }
.badge.green { background: #eaf2eb; color: #55745d; }
.badge.gold { background: #f6eddc; color: #8b6630; }
.badge.danger { background: #fde9e6; color: #b13b31; }
.renewal-smart-panel { border-color: #e7dccd; }
.renewal-summary-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.renewal-summary-card {
  display: grid;
  gap: 7px;
  min-height: 118px;
  padding: 16px;
  border: 1px solid #e8e2da;
  border-radius: 14px;
  background: #fcfbf9;
  color: var(--ink);
  text-align: left;
}
button.renewal-summary-card { cursor: pointer; }
.renewal-summary-card small { color: #77706a; font-size: 12px; }
.renewal-summary-card strong { font-family: "Songti SC", serif; font-size: 30px; }
.renewal-summary-card span { color: #9a9189; font-size: 11px; }
.renewal-summary-card.expiring { background: #fff8eb; border-color: #efdcb8; }
.renewal-summary-card.expired { background: #fff0ee; border-color: #edc8c2; }
.renewal-summary-card.expired strong { color: var(--danger); }
.renewal-summary-card.active { background: #f3f8f3; border-color: #d5e6d7; }
.renewal-alert-list { display: grid; gap: 9px; margin-top: 16px; }
.renewal-alert-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 15px;
  border-left: 3px solid #d7b578;
  border-radius: 8px;
  background: #fffbf3;
}
.renewal-alert-row.expired { border-left-color: var(--danger); background: #fff3f1; }
.renewal-alert-row strong { display: block; font-size: 13px; }
.renewal-alert-row small { display: block; margin-top: 4px; color: #8b8178; font-size: 11px; }
.renewal-alert-row button { flex: 0 0 auto; padding: 8px 12px; border: 0; border-radius: 8px; background: #fff; color: #8d5e2e; }
.renewal-alert-row.expired button { color: var(--danger); }
.badge.gold { background: #f3e9dc; color: #936a3b; }
.permission-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; margin-top: 18px; }
.permission { display: flex; align-items: center; justify-content: space-between; min-height: 40px; color: #655e57; font-size: 13px; }
.permission-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.permission-group { padding: 18px; border: 1px solid var(--line); border-radius: 16px; background: #fcfaf7; }
.permission-group-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.permission-group-title { font-size: 14px; font-weight: 600; }
.permission-group-desc { margin-top: 5px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.permission-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 0; border-top: 1px solid #eee8e1; }
.permission-item:first-of-type { margin-top: 10px; }
.permission-item strong { display: block; font-size: 12px; font-weight: 500; }
.permission-item small { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.risk-tag { display: inline-block; margin-left: 5px; padding: 1px 5px; border-radius: 999px; background: #f7e9e6; color: var(--danger); font-size: 9px; font-style: normal; }
.switch { position: relative; width: 38px; height: 22px; flex: 0 0 38px; }
.switch input { position: absolute; opacity: 0; pointer-events: none; }
.switch span { position: absolute; inset: 0; border-radius: 999px; background: #d8d1ca; transition: .18s; }
.switch span::after { content: ""; position: absolute; left: 3px; top: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: .18s; box-shadow: 0 1px 4px rgba(0,0,0,.18); }
.switch input:checked + span { background: var(--ink); }
.switch input:checked + span::after { transform: translateX(16px); }
.switch input:disabled + span { opacity: .45; }
.detail-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 20px 0; }
.detail-tabs button { padding: 9px 14px; border: 0; border-radius: 999px; background: #eee8e1; color: #655e57; font-size: 12px; }
.detail-tabs button.active { background: var(--ink); color: #fff; }
.detail-section { margin-top: 18px; }
.notice { padding: 14px 16px; border: 1px solid #eadfcb; border-radius: 14px; background: #fbf6ee; color: #715d45; font-size: 12px; line-height: 1.7; }
.scope-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.scope-fact { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.scope-fact small { color: var(--muted); font-size: 11px; }
.scope-fact strong { display: block; margin-top: 8px; font-size: 15px; }
.preset-row { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; padding: 15px; border-radius: 14px; background: #f6f1eb; }
.preset-row label { flex: 1 1 230px; color: var(--muted); font-size: 12px; }
.preset-row select { width: 100%; height: 40px; margin-top: 7px; padding: 0 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.preset-row button { height: 40px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--ink); color: #fff; }
.audit-list { display: grid; gap: 9px; }
.audit-item { padding: 13px 15px; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.audit-item strong { font-size: 13px; font-weight: 500; }
.audit-item small { display: block; margin-top: 5px; color: var(--muted); font-size: 11px; }
.inline-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.inline-actions button { height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #5d5650; font-size: 12px; }
.inline-actions .danger { border-color: #ecd2ce; color: var(--danger); }
.toolbar-grid { display: grid; grid-template-columns: 2fr 1fr auto; align-items: end; gap: 12px; margin-bottom: 18px; }
.toolbar-grid.customer-toolbar { grid-template-columns: 1.5fr repeat(4, minmax(130px, .8fr)) auto; }
.toolbar-grid.store-toolbar { grid-template-columns: minmax(200px, 1.4fr) repeat(5, minmax(110px, .7fr)) auto; }
.toolbar-grid label { color: var(--muted); font-size: 12px; }
.toolbar-grid input, .toolbar-grid select {
  width: 100%;
  height: 42px;
  margin-top: 7px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
}
.pagination { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 18px; color: var(--muted); font-size: 12px; }
.pagination button { min-width: 88px; height: 36px; border: 0; border-radius: 999px; }
.details-summary { cursor: pointer; color: var(--ink); font-size: 16px; font-weight: 600; }
.check-grid { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 14px; padding: 14px 0; color: var(--muted); font-size: 12px; }
.check-label { display: inline-flex; align-items: center; gap: 7px; color: #665f58; font-size: 13px; }
.category-settings { display: grid; gap: 10px; margin-top: 18px; }
.category-setting-row { display: grid; grid-template-columns: minmax(180px, 1fr) auto 110px; align-items: center; gap: 12px; }
.category-setting-row input { height: 40px; padding: 0 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }

.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.form-grid label { color: var(--muted); font-size: 12px; }
.form-grid input, .form-grid select, .form-grid textarea {
  width: 100%;
  height: 42px;
  margin-top: 7px;
  padding: 0 12px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: #fff;
}
.form-grid textarea { height: 82px; padding: 12px; resize: vertical; }
.form-grid .full-span { grid-column: 1 / -1; }
.form-actions { display: flex; gap: 10px; margin-top: 18px; }
.form-actions button { min-width: 120px; height: 42px; border: 0; border-radius: 999px; }
.form-actions .save { background: var(--ink); color: #fff; }
.form-actions .secondary { background: #ebe5de; color: #554e47; }
.form-actions .danger-action { background: #f8e9e6; color: var(--danger); }
.link-btn {
  padding: 6px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #fff;
  color: #6b5a8e;
  font-size: 12px;
}
.panel-head > button.secondary,
.toolbar-grid > button {
  min-height: 40px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: #ebe5de;
  color: #554e47;
}
.account-form { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { padding: 13px 12px; border-bottom: 1px solid #eee8e1; text-align: left; font-size: 13px; vertical-align: middle; }
th { color: var(--muted); font-size: 11px; font-weight: 600; }
.store-table { min-width: 1430px; }
.store-table th { background: #f7f3ee; border-top: 1px solid var(--line); }
.store-table td { background: #fff; }
.store-table tr.row-selected td { background: #fbf8f3; }
.table-subline { display: block; margin-top: 5px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.store-name-button { padding: 0; border: 0; background: transparent; color: var(--ink); font-weight: 600; text-align: left; }
.store-name-button:hover { color: var(--gold); }
.address-cell { min-width: 260px; }
.address-cell strong { font-size: 12px; font-weight: 500; }
.table-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.table-actions button { padding: 6px 10px; border: 1px solid var(--line); border-radius: 999px; background: #fff; color: #5e5650; font-size: 11px; }
.table-actions button.danger { border-color: #edd5d1; color: var(--danger); }
.store-page-head {
  display: flex;
  justify-content: flex-end;
  margin: -18px 0 20px;
}
.store-page-links, .store-batch-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.store-page-links button, .store-batch-actions button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #2563b7;
  font-size: 13px;
}
.dy-store-filter {
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}
.dy-filter-row {
  display: grid;
  grid-template-columns: minmax(0, 2.2fr) minmax(0, 2fr) minmax(0, 1.2fr) 118px;
  gap: 16px;
  align-items: end;
}
.dy-filter-row.second-row { margin-top: 16px; }
.dy-control {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  min-height: 46px;
  padding: 0 12px;
  border: 1px solid #d4d4d4;
  border-radius: 8px;
  color: #333;
  font-size: 16px;
}
.dy-control > span { padding-right: 12px; border-right: 1px solid #e2e2e2; color: #666; }
.dy-control input, .dy-control select {
  min-width: 0;
  height: 42px;
  padding: 0 12px;
  border: 0;
  background: transparent;
  outline: none;
}
.dy-region-control { grid-template-columns: auto minmax(90px, 1fr) minmax(90px, .8fr) minmax(90px, .8fr); }
.dy-region-control select + select { border-left: 1px solid #ededed; }
.dy-filter-actions { display: flex; gap: 10px; }
.dy-filter-actions button, .primary-small {
  width: 100%;
  height: 46px;
  border: 1px solid #d4d4d4;
  border-radius: 8px;
  background: #fff;
  color: #333;
  font-size: 15px;
}
.dy-filter-actions .primary-small { border-color: #2f70d8; background: #2f70d8; color: #fff; }
.store-result-tabs {
  display: flex;
  gap: 34px;
  margin-top: 24px;
  border-bottom: 1px solid var(--line);
}
.store-result-tabs button {
  padding: 13px 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #333;
  font-size: 16px;
}
.store-result-tabs button.active { border-bottom-color: #3b7de0; font-weight: 600; }
.store-batch-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
}
.store-batch-primary {
  display: flex;
  align-items: center;
  gap: 18px;
}
.store-selection-status {
  display: flex;
  align-items: center;
  gap: 9px;
  min-width: 150px;
  color: #7b7064;
  font-size: 12px;
}
.store-selection-status b {
  color: #3d4c43;
  font-size: 16px;
  font-weight: 600;
}
.store-selection-status button {
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: #8a6c4c;
  font-size: 11px;
}
.store-selection-status button:disabled { color: #c8c1b8; }
.store-batch-actions > button,
.inline-create-store > summary {
  padding: 8px 14px;
  border: 1px solid #999;
  border-radius: 8px;
  background: #fff;
  color: #333;
  cursor: pointer;
  font-size: 13px;
}
.store-batch-actions {
  display: flex;
  align-items: center;
  gap: 9px;
}
.store-batch-actions > button:disabled {
  border-color: #ded9d2;
  background: #f5f2ed;
  color: #aaa198;
  cursor: not-allowed;
}
.store-batch-secondary > button:first-child { border: 0; color: #2563b7; }
.store-batch-scope-note {
  display: grid;
  gap: 4px;
  color: #7c746b;
  font-size: 11px;
}
.store-batch-scope-note strong { color: #3f3933; font-size: 13px; }
.inline-create-store > summary { border-color: #2f70d8; background: #2f70d8; color: #fff; }
.inline-create-store { position: relative; }
.inline-create-store .inline-store-create-body {
  position: absolute;
  right: 0;
  top: 42px;
  z-index: 15;
  width: min(760px, 80vw);
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 18px 50px rgba(0,0,0,.16);
}
.store-more-batch { position: relative; }
.store-more-batch > summary {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid #999;
  border-radius: 8px;
  background: #fff;
  color: #333;
  cursor: pointer;
  font-size: 13px;
  list-style: none;
}
.store-more-batch > summary::-webkit-details-marker { display: none; }
.store-more-batch[open] > summary {
  border-color: #8d765f;
  box-shadow: 0 0 0 3px rgba(141,118,95,.1);
}
.store-more-batch-menu {
  position: absolute;
  z-index: 20;
  top: calc(100% + 8px);
  left: 0;
  min-width: 190px;
  padding: 7px;
  border: 1px solid #ded8cf;
  border-radius: 11px;
  background: #fffdf9;
  box-shadow: 0 16px 38px rgba(57,45,33,.16);
}
.store-more-batch-menu button {
  width: 100%;
  padding: 11px 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #494039;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
}
.store-more-batch-menu button:hover { background: #f5f0e9; }
.store-more-batch-menu button:disabled { color: #b8b0a7; cursor: not-allowed; }
.store-more-batch-menu button:last-child {
  margin-top: 5px;
  border-top: 1px solid #ece5dc;
  border-radius: 0 0 7px 7px;
  color: #2e6e4c;
  font-weight: 600;
}
.store-list-panel { padding: 0; overflow: hidden; }
.store-list-panel .table-wrap { border-radius: 14px; }
.store-empty-panel {
  display: grid;
  min-height: 320px;
  place-content: center;
  gap: 9px;
  padding: 40px;
  text-align: center;
}
.store-empty-panel > span {
  color: #a98a6c;
  font-size: 9px;
  letter-spacing: .22em;
}
.store-empty-panel > strong {
  color: #3f3933;
  font-family: "Songti SC", serif;
  font-size: 22px;
  font-weight: 500;
}
.store-empty-panel > p {
  max-width: 470px;
  margin: 0;
  color: #8d8379;
  font-size: 11px;
  line-height: 1.8;
}
.select-cell { width: 44px; text-align: center; }
.store-table th:nth-child(1), .store-table td:nth-child(1) { width: 44px; }
.store-table .table-actions { gap: 12px; flex-wrap: nowrap; }
.store-table .table-actions button { padding: 0; border: 0; background: transparent; color: #2563b7; }
.store-batch-modal-open { overflow: hidden; }
.store-batch-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 95;
  display: grid;
  justify-items: center;
  align-items: start;
  padding: 2cm 20px 28px;
  overflow-y: auto;
  background: rgba(35, 29, 24, .4);
  backdrop-filter: blur(4px);
}
.store-batch-modal {
  --course-blue: #2f4036;
  position: relative;
  top: auto;
  left: auto;
  bottom: auto;
  width: min(680px, 96vw);
  height: auto;
  max-height: none;
  margin: 0;
  border: 1px solid rgba(100, 83, 65, .13);
  border-radius: 16px;
  background: #fbf8f3;
  box-shadow: 0 28px 90px rgba(50, 39, 28, .26);
  transform: none;
}
.store-batch-import-modal { width: min(760px, 96vw); }
.store-batch-picker-modal { width: min(720px, 96vw); }
.store-archive-modal { --course-blue: #964a40; width: min(620px, 96vw); }
.store-batch-modal .course-modal-head {
  margin: 0;
  padding-bottom: 18px;
  border-bottom: 1px solid #e7dfd5;
}
.store-batch-modal-summary {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0;
  padding: 13px 15px;
  border: 1px solid #e5ded4;
  border-radius: 10px;
  background: #f5f0e9;
  color: #81766a;
  font-size: 12px;
}
.store-batch-modal-summary strong {
  color: #3c352e;
  font-size: 14px;
  font-weight: 600;
}
.store-batch-modal-summary button {
  margin-left: auto;
  padding: 0;
  border: 0;
  background: transparent;
  color: #826446;
  font-size: 11px;
}
.store-batch-modal form { display: grid; gap: 17px; }
.store-batch-field {
  display: grid;
  gap: 8px;
  color: #514943;
  font-size: 12px;
}
.store-batch-field input,
.store-batch-field select,
.store-batch-field textarea {
  width: 100%;
  padding: 11px 12px;
  border: 1px solid #d8cfc4;
  border-radius: 9px;
  background: #fff;
  color: #332e29;
  font: inherit;
  outline: none;
}
.store-batch-field textarea { min-height: 88px; resize: vertical; line-height: 1.65; }
.store-batch-field input:focus,
.store-batch-field select:focus,
.store-batch-field textarea:focus {
  border-color: #987d61;
  box-shadow: 0 0 0 3px rgba(152,125,97,.11);
}
.store-batch-field small { color: #92877c; font-size: 10px; line-height: 1.5; }
.store-batch-choice-group {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
}
.store-batch-choice-group legend {
  margin-bottom: 9px;
  color: #514943;
  font-size: 12px;
}
.store-batch-choice-group > label {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  padding: 13px 14px;
  border: 1px solid #ddd4c9;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}
.store-batch-choice-group > label:has(input:checked) {
  border-color: #8d7359;
  background: #f6f1ea;
  box-shadow: inset 3px 0 #8d7359;
}
.store-batch-choice-group input { margin-top: 2px; accent-color: #73583f; }
.store-batch-choice-group span { display: grid; gap: 3px; }
.store-batch-choice-group b { color: #3e3731; font-size: 12px; font-weight: 600; }
.store-batch-choice-group small { color: #93887d; font-size: 10px; }
.store-batch-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.store-batch-category-grid legend { grid-column: 1 / -1; }
.store-batch-selected-preview {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 2px;
}
.store-batch-selected-preview span {
  max-width: 260px;
  overflow: hidden;
  padding: 5px 8px;
  border-radius: 999px;
  background: #eee8df;
  color: #7d7165;
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.store-batch-modal-actions {
  position: sticky;
  bottom: -26px;
  margin: 5px -26px -26px;
  padding: 15px 26px 20px;
  border-top: 1px solid #e5ded4;
  background: rgba(251,248,243,.97);
}
.store-batch-modal-actions .save {
  min-width: 180px;
  background: #2f4036;
  color: #fff;
}
.store-batch-modal-actions .save:disabled {
  background: #9ba49f;
  cursor: wait;
}
.store-batch-modal-actions .secondary {
  border: 1px solid #ddd3c8;
  background: #efe9e1;
  color: #51483f;
}
.store-import-guide {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px;
  border: 1px solid #e2dbd1;
  border-radius: 10px;
  background: #f5f0e9;
}
.store-import-guide > div { display: grid; gap: 5px; }
.store-import-guide strong { color: #3f3831; font-size: 12px; }
.store-import-guide span { color: #887c70; font-size: 10px; line-height: 1.6; }
.store-import-guide button {
  flex: 0 0 auto;
  padding: 8px 11px;
  border: 1px solid #d4c8ba;
  border-radius: 8px;
  background: #fff;
  color: #6f5943;
  font-size: 11px;
}
.store-batch-file-drop {
  display: grid;
  justify-items: center;
  gap: 7px;
  padding: 30px 16px;
  border: 1px dashed #c9bba9;
  border-radius: 12px;
  background: rgba(255,255,255,.55);
  text-align: center;
  cursor: pointer;
}
.store-batch-file-drop input { width: 100%; max-width: 340px; }
.store-batch-file-drop strong { color: #4a4139; font-size: 13px; }
.store-batch-file-drop span { color: #94887c; font-size: 10px; }
.store-import-result {
  padding: 15px;
  border: 1px solid #dbe5dc;
  border-radius: 10px;
  background: #f5faf6;
}
.store-import-result-head,
.store-import-stats {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.store-import-result-head span,
.store-import-stats span { color: #758077; font-size: 11px; }
.store-import-stats { justify-content: flex-start; gap: 22px; margin-top: 11px; }
.store-import-stats .success { color: #3f714c; }
.store-import-stats .warning { color: #9a671e; }
.store-import-result details { margin-top: 13px; color: #715b47; font-size: 11px; }
.store-import-result summary { cursor: pointer; font-weight: 600; }
.store-import-result ol { max-height: 220px; margin: 10px 0 0; padding-left: 22px; overflow-y: auto; line-height: 1.8; }
.store-import-complete { margin: 12px 0 0; color: #51745a; font-size: 11px; }
.store-archive-summary {
  display: grid;
  gap: 5px;
  padding: 15px;
  border: 1px solid #e5ddd3;
  border-radius: 10px;
  background: #f7f2eb;
}
.store-archive-summary strong { color: #3e3630; font-size: 14px; }
.store-archive-summary span { color: #81766c; font-size: 11px; }
.store-archive-summary small { color: #9a8f84; font-size: 10px; line-height: 1.6; }
.store-archive-rules {
  display: grid;
  gap: 6px;
  margin: 14px 0;
  padding: 14px 15px;
  border: 1px solid #edd7d3;
  border-radius: 10px;
  background: #fcf5f3;
  color: #7f625d;
  font-size: 10px;
  line-height: 1.7;
}
.store-archive-rules p { margin: 0; color: #77483f; font-size: 12px; }
.store-archive-error {
  display: grid;
  gap: 7px;
  border-color: #eccbc5;
  background: #fff7f5;
}
.store-archive-error strong { color: #98453b; font-size: 12px; }
.store-archive-error span { color: #8e6c65; font-size: 10px; line-height: 1.6; }
.store-batch-picker-tools {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.store-batch-picker-tools input[type="search"] {
  height: 40px;
  padding: 0 12px;
  border: 1px solid #d8cfc4;
  border-radius: 8px;
  background: #fff;
  outline: none;
}
.store-batch-picker-tools label {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #62584f;
  font-size: 11px;
  white-space: nowrap;
}
.store-batch-picker-tools > span {
  color: #8b7f74;
  font-size: 11px;
  white-space: nowrap;
}
.store-batch-picker-tools b { color: #3f3832; font-size: 14px; }
.store-batch-picker-list {
  max-height: min(420px, 44vh);
  overflow-y: auto;
  border: 1px solid #e3dbd1;
  border-radius: 10px;
  background: #fff;
}
.store-batch-picker-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  border-bottom: 1px solid #f0eae3;
  cursor: pointer;
}
.store-batch-picker-row:last-child { border-bottom: 0; }
.store-batch-picker-row:hover { background: #fbf8f4; }
.store-batch-picker-row span { display: grid; gap: 3px; }
.store-batch-picker-row strong { color: #3d3731; font-size: 12px; font-weight: 500; }
.store-batch-picker-row small { color: #968b80; font-size: 9px; }
.store-batch-picker-row em {
  color: #7e746a;
  font-size: 9px;
  font-style: normal;
}
.store-batch-picker-loading {
  padding: 48px 20px;
  color: #958a7f;
  font-size: 11px;
  text-align: center;
}
@media (max-width: 760px) {
  .store-batch-bar,
  .store-batch-primary {
    align-items: stretch;
    flex-direction: column;
  }
  .store-selection-status { min-width: 0; }
  .store-batch-actions,
  .store-batch-secondary { flex-wrap: wrap; }
  .store-more-batch-menu {
    right: 0;
    left: auto;
    width: min(220px, calc(100vw - 40px));
  }
  .store-batch-modal-backdrop {
    align-items: start;
    padding: 14px 10px 24px;
  }
  .store-batch-modal,
  .store-batch-import-modal {
    width: 100%;
    padding: 18px;
    border-radius: 13px;
  }
  .store-batch-modal .course-modal-head h2 { font-size: 22px; }
  .store-batch-category-grid { grid-template-columns: 1fr; }
  .store-batch-modal-actions {
    bottom: -18px;
    margin: 4px -18px -18px;
    padding: 14px 18px 18px;
  }
  .store-import-guide {
    align-items: stretch;
    flex-direction: column;
  }
  .store-import-guide button { width: 100%; }
  .store-batch-picker-tools { grid-template-columns: 1fr; }
  .store-batch-picker-tools label,
  .store-batch-picker-tools > span { justify-self: start; }
}
.subpage-head, .section-row-head, .decoration-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.subpage-head { margin: -12px 0 18px; }
.subpage-head button, .decoration-heading button {
  padding: 8px 12px;
  border: 0;
  background: transparent;
  color: #333;
}
.store-profile-card {
  padding: 26px;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.store-profile-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.store-lifecycle-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
  padding: 15px 16px;
  border: 1px solid #e5ddd3;
  border-radius: 11px;
  background: #faf7f2;
}
.store-lifecycle-actions > div:first-child {
  display: grid;
  gap: 4px;
}
.store-lifecycle-actions span {
  color: #9a8c7f;
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.store-lifecycle-actions strong { color: #3f3832; font-size: 13px; }
.store-lifecycle-actions small {
  max-width: 560px;
  color: #8a7f75;
  font-size: 10px;
  line-height: 1.6;
}
.store-lifecycle-buttons {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.store-lifecycle-buttons button {
  min-height: 36px;
  padding: 0 13px;
  border: 1px solid #d8cec2;
  border-radius: 7px;
  background: #fff;
  color: #5e554d;
  font-size: 11px;
}
.store-lifecycle-buttons .save {
  border-color: #2f4036;
  background: #2f4036;
  color: #fff;
}
.store-lifecycle-buttons .danger {
  border-color: #e4c4bd;
  background: #fff8f6;
  color: #a34b40;
}
.store-lifecycle-buttons button:disabled {
  border-color: #e4ded7;
  background: #f5f2ee;
  color: #aaa198;
}
.store-identity { display: flex; align-items: center; gap: 18px; }
.store-identity h2 { margin: 0 0 6px; font-size: 22px; font-weight: 600; }
.store-logo {
  width: 62px;
  height: 62px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(145deg,#ffd74b,#55cbd0);
  color: #7d551c;
  font-size: 9px;
  font-weight: 700;
}
.outline-action { padding: 10px 16px; border: 1px solid #aaa; border-radius: 8px; background: #fff; }
.profile-fields { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px 28px; margin-top: 28px; }
.profile-fields > div { display: grid; grid-template-columns: 110px minmax(0,1fr); gap: 10px; align-items: start; font-size: 13px; }
.profile-fields span { color: #777; }
.profile-fields strong { font-weight: 500; line-height: 1.6; }
.profile-fields .wide { grid-column: 1 / -1; }
.field-edit-button {
  margin-left: 8px;
  padding: 3px 8px;
  border: 1px solid #d8cbbb;
  border-radius: 999px;
  background: #fffaf4;
  color: #8b6849;
  font-size: 9px;
  vertical-align: middle;
}
.store-field-modal { width: min(620px, 94vw); }
.store-category-edit { grid-template-columns: repeat(2,minmax(0,1fr)); }
[data-goods-batch-store-panel] {
  max-height: 300px;
  overflow-y: auto;
  padding: 10px;
  border: 1px solid #e3dbd1;
  border-radius: 9px;
  background: #fff;
}
[data-goods-batch-store-panel][hidden] { display: none; }
.subpage-section { margin-top: 28px; }
.subpage-section h2, .section-row-head h2 { margin: 0; font-size: 20px; font-weight: 600; }
.qualification-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 14px; }
.qualification-card {
  display: grid;
  gap: 7px;
  min-height: 120px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.qualification-card span { color: #777; font-size: 13px; }
.qualification-card strong { font-size: 15px; }
.qualification-card small { color: #aaa; font-size: 11px; }
.qualification-form { margin-top: 16px; }
.qualification-upload-grid {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 14px;
}
.qualification-upload-grid > label { display: grid; gap: 8px; color: #5d554e; font-size: 12px; }
.qualification-upload-grid .full-span { grid-column: 1 / -1; }
.contract-cell strong { font-size: 12px; }
.contract-cell.success strong { color: #4e7657; }
.contract-cell.warning strong { color: #a46c22; }
.contract-cell.danger strong { color: var(--danger); }
.contract-cell.muted strong { color: #8b8178; }
.listing-pill {
  display: inline-flex;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f1eee9;
  color: #766d64;
  font-size: 9px;
}
.listing-pill.online { background: #eaf2eb; color: #4d7256; }
.listing-pill.pending { background: #fff2dc; color: #95621e; }
.listing-pill.offline { background: #fde9e6; color: var(--danger); }
.listing-pill.archived { background: #ede9e5; color: #756d65; }
.section-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: 14px; }
.section-row-actions button {
  padding: 8px 12px;
  border: 1px solid #d9c9b7;
  border-radius: 9px;
  background: #fff;
  color: #765a40;
}
.teacher-editor-head { display: flex; align-items: center; justify-content: space-between; }
.remove-teacher {
  padding: 4px 0;
  border: 0;
  background: transparent;
  color: var(--danger);
  font-size: 11px;
}
.contract-badge { padding: 7px 12px; border-radius: 999px; background: #edf5ef; color: #4e7657; font-size: 12px; }
.contract-badge.warning { background: #fff4df; color: #9b651c; }
.contract-badge.danger { background: #fde9e6; color: var(--danger); font-weight: 700; }
.contract-badge.muted { background: #f2efec; color: #7e746b; }
.cooperation-summary-grid {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 10px;
  margin-top: 16px;
}
.cooperation-summary-grid > div {
  display: grid;
  gap: 8px;
  min-height: 84px;
  padding: 14px;
  border: 1px solid #e9e3dc;
  border-radius: 12px;
  background: #fcfbf9;
}
.cooperation-summary-grid small { color: #8b8178; font-size: 11px; }
.cooperation-summary-grid strong { font-size: 14px; }
.cooperation-summary-grid .danger { border-color: #edc8c2; background: #fff2f0; color: var(--danger); }
.cooperation-summary-grid .warning { border-color: #efdcb8; background: #fff9ee; color: #9b651c; }
.cooperation-summary-grid .success { border-color: #d5e6d7; background: #f4f9f4; color: #4e7657; }
.contract-alert {
  display: grid;
  gap: 5px;
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 11px;
  font-size: 12px;
  line-height: 1.6;
}
.contract-alert.danger { border: 1px solid #edc8c2; background: #fff0ee; color: #9f3028; }
.contract-alert.warning { border: 1px solid #efdcb8; background: #fff9ee; color: #845a1f; }
.cooperation-forms { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; margin-top: 18px; }
.cooperation-forms > form,
.renewal-history {
  padding: 18px;
  border: 1px solid #e8e1d8;
  border-radius: 14px;
  background: #fff;
}
.cooperation-form-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.cooperation-form-head small { color: #9a9189; font-size: 11px; }
.renewal-history { margin-top: 16px; }
.renewal-history-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  border-top: 1px solid #eee8e1;
}
.renewal-history-row strong { display: block; font-size: 13px; }
.renewal-history-row small { display: block; margin-top: 4px; color: #8b8178; font-size: 11px; }
.renewal-history-amount { text-align: right; }
.audit-filter-grid {
  display: grid;
  grid-template-columns: 2fr 1.2fr 1.2fr 1fr 1fr auto;
  gap: 10px;
  align-items: end;
  padding: 14px;
  border-radius: 14px;
  background: #fbf8f4;
}
.audit-filter-grid label { display: grid; gap: 6px; color: #72685f; font-size: 11px; }
.audit-table { min-width: 1080px; }
.audit-table td { vertical-align: top; }
.audit-content-cell { min-width: 320px; max-width: 520px; }
.audit-diff summary { cursor: pointer; color: #785d3f; font-size: 12px; }
.audit-diff-table { display: grid; gap: 7px; margin-top: 10px; }
.audit-diff-row {
  display: grid;
  grid-template-columns: 110px minmax(0,1fr) minmax(0,1fr);
  gap: 8px;
  padding: 8px;
  border-radius: 8px;
  background: #faf7f2;
  font-size: 10px;
}
.audit-diff-row strong { color: #554b42; }
.audit-diff-row span { white-space: pre-wrap; word-break: break-word; }
.audit-diff-row .before { color: #9a5752; }
.audit-diff-row .after { color: #477052; }
.audit-content-cell pre {
  max-height: 200px;
  overflow: auto;
  padding: 8px;
  border-radius: 8px;
  background: #faf7f2;
  font-size: 10px;
  white-space: pre-wrap;
}
.team-tabs {
  display: flex;
  gap: 28px;
  margin-bottom: 16px;
  border-bottom: 1px solid #ddd5cc;
}
.team-tabs button {
  padding: 12px 3px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #6d645c;
  font-size: 14px;
}
.team-tabs button.active { border-bottom-color: #2f79d0; color: #2f79d0; font-weight: 600; }
.team-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: start; }
.team-org-panel {
  position: sticky;
  top: 20px;
  padding: 16px;
  border: 1px solid #e6ddd4;
  border-radius: 16px;
  background: #fff;
}
.team-org-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.team-org-head span { color: #938980; font-size: 11px; }
.team-org-search { width: 100%; margin-bottom: 10px; }
.team-org-root,
.team-org-store-list button {
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #514a44;
  text-align: left;
}
.team-org-root.active,
.team-org-store-list button.active { background: #eef5ff; color: #286dbb; }
.team-org-store-list { max-height: 620px; overflow-y: auto; margin-top: 8px; }
.team-org-store-list button { display: grid; gap: 4px; font-size: 12px; }
.team-org-store-list button strong { font-weight: 500; }
.team-org-store-list button small { color: #958b82; font-size: 10px; }
.team-main { min-width: 0; }
.team-filter-grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, minmax(150px, .8fr)) auto;
  gap: 10px;
  align-items: end;
  padding: 14px;
  border-radius: 12px;
  background: #fbf8f4;
}
.team-filter-grid label { display: grid; gap: 6px; color: #776d65; font-size: 11px; }
.team-filter-actions { display: flex; align-items: center; gap: 7px; }
.team-filter-actions button {
  min-width: 64px;
  height: 36px;
  padding: 0 12px;
  border: 1px solid #ddd5cc;
  border-radius: 9px;
  background: #fff;
  font-size: 11px;
}
.team-filter-actions .primary-small { border-color: #2f79d0; background: #2f79d0; color: #fff; }
.team-batch-bar { display: flex; align-items: center; justify-content: space-between; margin: 14px 0 8px; }
.team-table { min-width: 1260px; }
.team-table td { vertical-align: top; }
.team-editor { border-color: #d8e4f3; }
.team-permission-groups { grid-template-columns: repeat(2,minmax(0,1fr)); margin: 16px 0; }
.team-permission-item { align-items: flex-start; padding: 8px; border-radius: 8px; }
.team-permission-item:has(input:checked) { background: #f1f6ff; }
.team-permission-item span { display: grid; gap: 3px; color: #4e4944; }
.team-permission-item small { color: #9a9188; font-size: 9px; }
.employee-store-field.hidden { display: none; }
.employee-store-picker {
  min-width: 0;
  margin: 0;
  padding: 14px;
  border: 1px solid #d9e3ee;
  border-radius: 12px;
  background: #f8fbff;
}
.employee-store-picker legend { padding: 0 6px; color: #3d5f84; font-size: 11px; font-weight: 600; }
.employee-store-picker-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}
.employee-store-picker-head p { margin: 0; color: #778494; font-size: 9px; line-height: 1.6; }
.employee-store-picker-head button {
  flex: 0 0 auto;
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #cdd9e5;
  border-radius: 7px;
  background: #fff;
  color: #496984;
  font-size: 9px;
}
.employee-store-selected { display: flex; flex-wrap: wrap; gap: 7px; min-height: 34px; margin-bottom: 10px; }
.employee-store-chip {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 2px 8px;
  max-width: 250px;
  padding: 7px 9px;
  border: 1px solid #ccdceb;
  border-radius: 9px;
  background: #fff;
  color: #344c66;
  text-align: left;
}
.employee-store-chip span { overflow: hidden; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.employee-store-chip small { grid-column: 1; color: #8896a4; font-size: 8px; }
.employee-store-chip b { grid-column: 2; grid-row: 1 / span 2; align-self: center; color: #8a99a9; font-size: 14px; }
.employee-store-empty { padding: 8px 0; color: #8d99a6; font-size: 10px; }
.employee-store-filters {
  display: grid;
  grid-template-columns: repeat(3,minmax(120px,.7fr)) minmax(220px,1.4fr);
  gap: 8px;
}
.employee-store-filters label { display: grid; gap: 5px; color: #738191; font-size: 9px; }
.employee-store-filters input,
.employee-store-filters select {
  width: 100%;
  height: 36px;
  padding: 0 9px;
  border: 1px solid #d5dfe9;
  border-radius: 8px;
  background: #fff;
  font-size: 10px;
}
.employee-store-result-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 11px;
  color: #7d8b99;
  font-size: 9px;
}
.employee-store-result-meta button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #d0dae5;
  border-radius: 7px;
  background: #fff;
  color: #47627e;
  font-size: 9px;
}
.employee-store-options {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px;
  max-height: 280px;
  overflow-y: auto;
  margin-top: 8px;
  padding-right: 3px;
}
.employee-store-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #e1e8ef;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}
.employee-store-option.selected { border-color: #9ebbd8; background: #f1f7fd; }
.employee-store-option input { margin-top: 2px; }
.employee-store-option span { min-width: 0; }
.employee-store-option strong { display: block; overflow: hidden; color: #3f4b58; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.employee-store-option small { display: block; margin-top: 4px; color: #8b98a5; font-size: 8px; line-height: 1.45; }
.smart-service-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 30px;
  border-radius: 22px;
  background: linear-gradient(135deg,#f6f2ea,#eff4fb);
}
.smart-service-head h2 { margin: 5px 0 7px; font-family: "Songti SC",serif; font-size: 30px; }
.smart-service-head p { margin: 0; color: #7c736b; font-size: 12px; line-height: 1.6; }
.smart-service-state { display: flex; align-items: center; gap: 8px; color: #776e66; font-size: 12px; }
.smart-service-state span { width: 9px; height: 9px; border-radius: 50%; background: #b5aaa0; }
.smart-service-state span.online { background: #4d9b61; box-shadow: 0 0 0 5px rgba(77,155,97,.12); }
.smart-service-tabs { display: flex; gap: 28px; margin: 18px 0; border-bottom: 1px solid #ddd5cc; }
.smart-service-tabs button {
  position: relative;
  padding: 13px 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #71685f;
}
.smart-service-tabs button.active { border-bottom-color: #2f79d0; color: #2f79d0; font-weight: 600; }
.smart-service-tabs em {
  display: inline-flex;
  min-width: 17px;
  height: 17px;
  margin-left: 5px;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #c75b4d;
  color: #fff;
  font-size: 9px;
  font-style: normal;
}
.smart-service-grid { display: grid; grid-template-columns: minmax(0,1fr) 260px; gap: 18px; }
.smart-service-main { min-width: 0; }
.service-stat-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.service-stat-grid .stat-card { padding: 18px; }
.service-stat-grid .stat-card strong { font-size: 28px; }
.service-chart { display: grid; gap: 10px; }
.service-chart-row { display: grid; grid-template-columns: 54px minmax(0,1fr) 36px; gap: 10px; align-items: center; font-size: 11px; }
.service-chart-row > div { height: 10px; border-radius: 999px; background: #f0ebe5; overflow: hidden; }
.service-chart-row i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#8ebbd6,#6d8fba); }
.service-chart-row b { text-align: right; font-weight: 500; }
.smart-service-side { display: grid; gap: 12px; align-content: start; }
.service-side-card {
  display: grid;
  gap: 8px;
  padding: 20px;
  border: 1px solid #e7dfd5;
  border-radius: 18px;
  background: #fff;
}
.service-side-card small { color: #978e85; font-size: 11px; }
.service-side-card strong { font-size: 24px; }
.service-side-card span { color: #857b72; font-size: 11px; }
.service-checklist { display: flex; flex-wrap: wrap; gap: 9px; }
.service-checklist span {
  padding: 9px 12px;
  border-radius: 999px;
  background: #f2efeb;
  color: #8d837a;
  font-size: 11px;
}
.service-checklist span.done { background: #eaf4ec; color: #4e7659; }
.knowledge-filter {
  display: grid;
  grid-template-columns: minmax(230px,1fr) 170px 150px auto;
  gap: 10px;
  margin-bottom: 14px;
}
.knowledge-candidate-list { display: grid; gap: 9px; }
.knowledge-candidate {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 14px;
  border: 1px solid #eadfcf;
  border-radius: 12px;
  background: #fffaf2;
}
.knowledge-candidate strong { display: block; font-size: 13px; }
.knowledge-candidate small { display: block; margin-top: 5px; color: #8f857c; font-size: 11px; line-height: 1.5; }
.service-flow {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-bottom: 20px;
  padding: 20px;
  border-radius: 16px;
  background: #f7f3ee;
}
.service-flow > div { display: grid; gap: 5px; min-width: 165px; text-align: center; }
.service-flow b { display: grid; place-items: center; width: 28px; height: 28px; margin: 0 auto; border-radius: 50%; background: #7f6ba8; color: #fff; font-size: 11px; }
.service-flow small { color: #91877e; font-size: 10px; }
.service-flow i { color: #aaa097; font-style: normal; }
.quick-reply-list { display: grid; gap: 10px; }
.quick-reply-row {
  display: grid;
  grid-template-columns: 180px minmax(0,1fr) 70px;
  gap: 10px;
  align-items: start;
  padding: 12px;
  border: 1px solid #e9e2d9;
  border-radius: 12px;
}
.quick-reply-row textarea { min-height: 80px; }
.change-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-top: 14px; }
.change-grid button { display: grid; gap: 8px; min-height: 90px; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: #fff; text-align: left; }
.change-grid strong { font-size: 15px; color: #333; }
.change-grid small { color: #999; font-size: 12px; line-height: 1.5; }
.change-grid .danger-quiet small { color: #b07b76; }
.decoration-heading { margin: 0 0 18px; }
.decoration-heading h2 { margin: 0; font-size: 22px; }
.decoration-layout { display: grid; grid-template-columns: 380px minmax(0,1fr); gap: 26px; }
.phone-preview {
  min-height: 720px;
  padding: 18px;
  border-radius: 28px;
  background: linear-gradient(155deg,#f2f7ff,#fff);
  border: 6px solid #edf1f6;
}
.phone-notch { width: 90px; height: 18px; margin: 0 auto 12px; border-radius: 0 0 12px 12px; background: #1c1a17; }
.phone-cover { height: 150px; display: grid; place-items: center; border-radius: 14px 14px 0 0; background: #dce8f8 center/cover no-repeat; color: #999; font-size: 12px; }
.phone-body { padding: 18px; border-radius: 0 0 18px 18px; background: #fff; box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.phone-body h3 { margin: 0 0 8px; font-size: 18px; }
.rating-line { color: #e75f6f; font-size: 12px; }
.phone-body p { color: #777; font-size: 12px; line-height: 1.5; }
.phone-teachers { display: flex; gap: 12px; margin-top: 18px; }
.phone-teachers div { flex: 1; display: grid; justify-items: center; gap: 6px; padding: 12px 6px; background: #f8f8f8; border-radius: 8px; }
.phone-teachers span { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 50%; background: #d8e8ff; color: #6d91bf; }
.phone-teachers small { font-size: 10px; color: #888; }
.phone-announcement { margin-top: 18px; padding: 12px; border-radius: 8px; background: #f7f7f7; color: #777; font-size: 12px; }
.decoration-settings { padding: 4px 0; }
.decoration-tabs { display: flex; gap: 26px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.decoration-tabs button { padding: 12px 2px; border: 0; border-bottom: 2px solid transparent; background: transparent; font-size: 15px; }
.decoration-tabs button.active { border-bottom-color: #2563b7; font-weight: 600; }
.decoration-settings h3 { margin: 26px 0 12px; font-size: 15px; color: #777; font-weight: 500; }
.setting-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.setting-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  min-height: 92px;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
}
.setting-card strong { font-size: 14px; }
.setting-card p { margin: 8px 0 0; color: #999; font-size: 11px; line-height: 1.5; }
.setting-card .setting-current { display: block; margin-top: 10px; color: #58744f; font-size: 11px; line-height: 1.5; word-break: break-all; }
.setting-card .setting-empty { display: block; margin-top: 10px; color: #b18455; font-size: 11px; }
.setting-card button { flex: 0 0 auto; padding: 10px 14px; border: 0; border-radius: 8px; background: #f0f1f3; color: #444; }
.setting-editor {
  grid-column: 1 / -1;
  display: grid;
  gap: 12px;
  padding: 18px;
  border: 1px solid #c8d9f1;
  border-radius: 12px;
  background: #f8fbff;
}
.setting-editor label { display: grid; gap: 8px; color: #555; font-size: 12px; }
.setting-editor input,
.setting-editor textarea { width: 100%; box-sizing: border-box; }
.setting-editor textarea { min-height: 110px; resize: vertical; }
.setting-editor-help { color: #8290a2; font-size: 11px; line-height: 1.6; }
.setting-editor .inline-actions { margin: 0; }
.decoration-wysiwyg { display: grid; gap: 16px; }
.decorator-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  border: 1px solid #e9e1d8;
  border-radius: 16px;
  background: #fff;
}
.decorator-shell {
  display: grid;
  grid-template-columns: 220px minmax(390px, 1fr) 310px;
  gap: 16px;
  align-items: start;
}
.scanner-gun-settings {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .9fr);
  align-items: center;
  gap: 24px;
  margin-bottom: 16px;
  padding: 22px 24px;
  border: 1px solid #ded4c7;
  border-radius: 12px;
  background:
    linear-gradient(115deg, rgba(39, 49, 45, .98), rgba(64, 75, 69, .96)),
    #29342f;
  color: #fff9f1;
}
.scanner-gun-settings .eyebrow { color: #d7b78f; }
.scanner-gun-settings strong { display: block; margin-top: 8px; font: 500 20px "Songti SC", serif; }
.scanner-gun-settings p { max-width: 670px; margin: 7px 0 0; color: rgba(255,255,255,.58); font-size: 10px; line-height: 1.7; }
.scanner-gun-controls {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px;
}
.scanner-gun-status {
  grid-column: 1 / -1;
  color: rgba(255,255,255,.6);
  font-size: 9px;
  line-height: 1.5;
}
.scanner-gun-controls input {
  height: 38px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.19);
  border-radius: 7px;
  background: rgba(255,255,255,.09);
  color: #fff;
  font-family: ui-monospace, monospace;
  letter-spacing: .12em;
}
.scanner-gun-controls input::placeholder { color: rgba(255,255,255,.36); font-family: "PingFang SC"; letter-spacing: 0; }
.scanner-gun-controls button {
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid #e3d0b8;
  border-radius: 7px;
  background: #e3d0b8;
  color: #2d2722;
  font-size: 10px;
}
.scanner-gun-controls button.secondary {
  border-color: rgba(255,255,255,.2);
  background: transparent;
  color: rgba(255,255,255,.7);
}
.decorator-components,
.decorator-properties {
  position: sticky;
  top: 18px;
  padding: 16px;
  border: 1px solid #e7dfd6;
  border-radius: 16px;
  background: #fff;
}
.decorator-components { display: grid; gap: 8px; }
.decorator-side-title { margin-bottom: 4px; font-size: 13px; font-weight: 600; }
.decorator-component {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #f8f5f1;
  color: #514a44;
  text-align: left;
}
.decorator-component > span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 8px;
  background: #ebe3d9;
  color: #826b53;
  font-weight: 700;
}
.decorator-component div { display: grid; gap: 2px; }
.decorator-component strong { font-size: 12px; }
.decorator-component small { color: #9b9187; font-size: 9px; }
.decorator-component.active { border-color: #8aa7cb; background: #f1f7ff; }
.decorator-help {
  margin-top: 8px;
  padding: 12px;
  border-radius: 10px;
  background: #fbf8f3;
  color: #8d8277;
  font-size: 10px;
  line-height: 1.6;
}
.decorator-canvas {
  min-height: 760px;
  padding: 24px;
  border-radius: 20px;
  background:
    radial-gradient(circle at 15% 10%, rgba(127,107,168,.13), transparent 35%),
    #f1ede7;
  overflow: auto;
}
.decorator-phone {
  width: 360px;
  min-height: 720px;
  margin: 0 auto;
  padding: 10px 10px 18px;
  border: 7px solid #262126;
  border-radius: 34px;
  background: #f7f4ef;
  box-shadow: 0 24px 55px rgba(40,30,24,.18);
  overflow: hidden;
}
.decorator-phone-status { display: flex; justify-content: space-between; padding: 4px 12px 8px; font-size: 8px; }
.decorator-phone-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 13px;
  border: 2px solid transparent;
  border-radius: 12px;
  font-size: 12px;
}
.decorator-phone-nav span { padding: 5px 9px; border-radius: 999px; background: rgba(255,255,255,.65); font-size: 9px; }
.decorator-hero {
  position: relative;
  display: grid;
  align-content: end;
  min-height: 210px;
  padding: 22px;
  border: 2px solid transparent;
  background: linear-gradient(145deg,#d8cdf2,#e7d5c4);
  background-size: cover;
  background-position: center;
  color: #fff;
  overflow: hidden;
}
.decorator-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 20%,rgba(22,18,17,.68)); }
.decorator-hero > * { position: relative; z-index: 1; }
.decorator-hero small { font-size: 8px; letter-spacing: 1px; }
.decorator-hero strong { margin-top: 8px; font-family: "Songti SC",serif; font-size: 28px; white-space: pre-line; }
.decorator-hero p { margin: 5px 0 10px; font-size: 10px; }
.decorator-hero em { display: inline-flex; align-items: center; gap: 6px; width: fit-content; padding: 8px 13px; border-radius: 999px; color: #fff; font-size: 10px; font-style: normal; }
.decorator-hero em img { width: 42px; height: 18px; object-fit: cover; border-radius: 4px; }
.decorator-phone-nav.active,
.decorator-hero.active,
.decorator-module.active { outline: 2px solid #5d8fc9; outline-offset: -2px; }
.decorator-sortable { display: grid; gap: 8px; margin-top: 8px; }
.decorator-module {
  border: 2px solid transparent;
  border-radius: 13px;
  background: #fff;
  cursor: grab;
}
.decorator-module.dragging { opacity: .5; }
.decorator-module.drag-over { transform: translateY(4px); outline: 2px dashed #4d7fb8; }
.decorator-module.module-hidden { opacity: .45; }
.decorator-drag-handle { display: flex; align-items: center; gap: 6px; padding: 6px 9px; border-bottom: 1px solid #eee8e1; color: #887d73; font-size: 9px; }
.decorator-drag-handle span { letter-spacing: -2px; }
.decorator-drag-handle b { color: #554d46; font-size: 10px; }
.decorator-drag-handle small { margin-left: auto; color: #aaa097; }
.preview-section { padding: 12px; }
.preview-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 10px; }
.preview-section-head div { display: grid; gap: 3px; }
.preview-section-head small { color: #b28c62; font-size: 7px; letter-spacing: 1px; }
.preview-section-head strong { font-size: 14px; }
.preview-link { color: #8a8178; font-size: 8px; }
.preview-pill { display: inline-flex; align-items: center; gap: 4px; padding: 5px 9px; border-radius: 999px; color: #fff; font-size: 8px; }
.preview-pill img { width: 32px; height: 12px; object-fit: cover; border-radius: 3px; }
.preview-chips { display: flex; gap: 5px; margin-top: 10px; }
.preview-chips span, .preview-fields span { padding: 5px 8px; border-radius: 999px; background: #f1ece6; color: #6d6258; font-size: 8px; }
.preview-fields { display: flex; gap: 5px; margin-top: 8px; }
.preview-fields span { flex: 1; border-radius: 5px; text-align: center; }
.preview-search { margin-top: 7px; padding: 7px 9px; border-radius: 5px; background: #f4f1ec; color: #aaa097; font-size: 8px; }
.preview-list-card { position: relative; display: grid; gap: 3px; margin-top: 8px; padding: 8px; border: 1px solid #eee8e1; border-radius: 8px; }
.preview-list-card b { font-size: 9px; }
.preview-list-card small { color: #998f86; font-size: 7px; }
.preview-list-card em { position: absolute; right: 8px; top: 10px; font-size: 13px; font-style: normal; }
.preview-row-cards { display: flex; gap: 7px; margin-top: 9px; }
.preview-row-cards > div { flex: 1; display: grid; gap: 4px; min-width: 0; padding: 8px; border: 1px solid #eee8e1; border-radius: 8px; }
.preview-row-cards i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 6px; background: #ede6f5; color: #786095; font-size: 8px; font-style: normal; }
.preview-row-cards b { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.preview-row-cards small { color: #9b9188; font-size: 8px; }
.preview-ai-card { display: flex; align-items: center; gap: 8px; }
.preview-ai-orb { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #c6a27a; color: #fff; font-size: 9px; }
.preview-ai-card > div:nth-child(2) { flex: 1; display: grid; gap: 3px; }
.preview-ai-card strong { font-size: 10px; }
.preview-ai-card small { color: #9b9188; font-size: 7px; }
.decorator-footer { padding: 14px 8px 4px; color: #aaa097; font-size: 8px; text-align: center; }
.decorator-properties { display: grid; gap: 10px; max-height: calc(100vh - 110px); overflow-y: auto; }
.decorator-property-head { display: grid; gap: 3px; padding-bottom: 10px; border-bottom: 1px solid #eee8e1; }
.decorator-property-head strong { font-size: 14px; }
.decorator-property-head small { color: #9a9188; font-size: 10px; line-height: 1.5; }
.decorator-properties > label,
.decorator-global-settings > label { display: grid; gap: 6px; color: #625a53; font-size: 11px; }
.decorator-properties textarea { min-height: 90px; }
.decorator-global-settings { border-top: 1px solid #eee8e1; padding-top: 12px; }
.decorator-global-settings summary { margin-bottom: 10px; color: #715e49; font-size: 12px; cursor: pointer; }
.decoration-page-tabs {
  display: flex;
  gap: 7px;
  margin: 0 0 16px;
  padding: 5px;
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 249, .78);
}
.decoration-page-tabs button {
  min-width: max-content;
  height: 38px;
  padding: 0 17px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #74695f;
  font-size: 12px;
}
.decoration-page-tabs button.active {
  background: var(--ink);
  color: var(--white);
}
.decoration-page-editor {
  display: grid;
  grid-template-columns: minmax(340px, 1.05fr) minmax(320px, .95fr);
  gap: 18px;
}
.decoration-page-preview {
  min-height: 620px;
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background:
    radial-gradient(circle at 92% 4%, rgba(200, 117, 63, .07), transparent 25%),
    #f4f0e9;
}
.decoration-page-preview .page-preview {
  width: min(390px, 100%);
  min-height: 570px;
  margin: 0 auto;
  padding: 28px 24px;
  overflow: hidden;
  border: 1px solid #dfd5c8;
  border-radius: 18px;
  background: #f8f5ef;
  box-shadow: 0 20px 54px rgba(62, 47, 38, .09);
}
.page-preview > small {
  display: block;
  color: var(--gold);
  font-size: 9px;
  letter-spacing: .16em;
}
.page-preview > strong {
  display: block;
  margin-top: 10px;
  font-family: "Songti SC", serif;
  font-size: 30px;
  font-weight: 400;
  line-height: 1.3;
}
.page-preview > p {
  margin: 10px 0 0;
  color: #786b60;
  font-size: 11px;
  line-height: 1.75;
}
.page-preview > footer {
  margin-top: 22px;
  padding-top: 13px;
  border-top: 1px solid #e3d9ce;
  color: #91867c;
  font-size: 9px;
  line-height: 1.6;
}
.page-preview-image {
  width: calc(100% + 48px);
  height: 190px;
  margin: -28px -24px 24px;
  object-fit: cover;
}
.page-preview-filter {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 10px;
  margin-top: 15px;
  padding: 12px;
  border: 1px solid #e2d8cd;
  border-radius: 7px;
  background: #fffdf9;
  color: #6f645a;
  font-size: 9px;
}
.page-preview-filter span { color: var(--gold); }
.page-preview-filter i { color: #8f8378; font-style: normal; }
.page-preview-card {
  margin-top: 13px;
  padding: 15px;
  border: 1px solid #e2d8cd;
  border-radius: 8px;
  background: #fffdf9;
}
.page-preview-card b,
.page-preview-card small,
.page-preview-card em { display: block; }
.page-preview-card b { font-size: 13px; }
.page-preview-card small { margin-top: 5px; color: #91867c; font-size: 9px; }
.page-preview-card em { margin-top: 9px; color: var(--gold); font-size: 16px; font-style: normal; }
.page-preview-campaign {
  margin-top: 20px;
  padding: 22px 18px;
  border-radius: 8px;
  background: linear-gradient(145deg, #30251e, #654b39 66%, #936b4a);
  color: #fffaf3;
}
.page-preview-campaign b { display: block; white-space: pre-line; font: 400 23px/1.35 "Songti SC", serif; }
.page-preview-campaign span { display: block; margin-top: 25px; color: #e3c19a; font-size: 9px; }
.page-preview-goods {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
  margin-top: 13px;
}
.page-preview-goods i {
  height: 128px;
  border: 1px solid #ded2c5;
  border-radius: 7px;
  background:
    linear-gradient(145deg, rgba(255, 253, 249, .12), rgba(255, 253, 249, 0)),
    #9f6d4c;
}
.page-preview-goods i:nth-child(2) { background-color: #7d6652; }
.page-preview-goods i:nth-child(3) { background-color: #75806d; }
.page-preview-goods i:nth-child(4) { background-color: #8d7567; }
.page-preview-actions {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 20px;
}
.page-preview-actions span {
  padding: 11px 5px;
  border: 1px solid #d9cdbf;
  border-radius: 5px;
  color: #5d5046;
  font-size: 9px;
  text-align: center;
}
.page-preview.store h3 { margin: 22px 0 5px; font: 400 19px "Songti SC", serif; }
.page-preview-teacher {
  height: 70px;
  margin-top: 9px;
  border-radius: 7px;
  background: linear-gradient(110deg, #eaded1 0 64px, #fffdf9 64px);
}
.page-preview.ai { background: #312720; color: #fffaf3; }
.page-preview.ai > small,
.page-preview.ai > p { color: rgba(255, 250, 243, .64); }
.page-preview.ai > footer { border-color: rgba(255, 250, 243, .14); color: #d6b184; }
.page-preview-orb {
  display: grid;
  width: 54px;
  height: 54px;
  margin-bottom: 18px;
  place-items: center;
  border: 1px solid rgba(255, 250, 243, .24);
  border-radius: 8px;
  color: #d8a676;
  font-family: Didot, Georgia, serif;
}
.page-preview-bubble,
.page-preview-input {
  margin-top: 18px;
  padding: 13px;
  border: 1px solid rgba(255, 250, 243, .16);
  border-radius: 8px;
  color: rgba(255, 250, 243, .78);
  font-size: 10px;
  line-height: 1.6;
}
.page-preview-input { margin-top: 80px; color: rgba(255, 250, 243, .46); }
.page-preview-profile-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 13px; }
.page-preview-profile-grid span { padding: 15px 10px; border: 1px solid #ddd2c6; border-radius: 6px; color: #62564c; font-size: 10px; text-align: center; }
.page-preview-dock {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  margin-top: 28px;
  padding: 15px 5px;
  border-top: 1px solid #dcd2c6;
  background: #f3eee7;
}
.page-preview-dock span { color: #776c62; font-size: 8px; text-align: center; }
.page-preview-dock span:nth-child(3) { color: var(--gold); }
.page-preview-mood { margin-top: 18px; padding: 12px; border: 1px solid #ded4c8; border-radius: 6px; background: #fffdf9; color: #7d6e62; font-size: 10px; }
.decoration-page-properties { max-height: 720px; }
.decoration-page-properties label { display: grid; gap: 7px; color: #655c54; font-size: 11px; }
.decoration-page-properties textarea { min-height: 100px; }
.image-upload-field { display: grid; gap: 8px; min-width: 0; }
.image-upload-label { color: #554e47; font-size: 12px; }
.image-drop-zone {
  position: relative;
  display: grid;
  gap: 10px;
  min-height: 118px;
  padding: 14px;
  border: 1px dashed #cfbfae;
  border-radius: 12px;
  background: #fcfaf7;
  cursor: pointer;
  outline: none;
}
.image-drop-zone:hover,
.image-drop-zone:focus,
.image-drop-zone.dragging {
  border-color: #7d6a55;
  background: #f8f2ea;
}
.image-drop-zone.disabled { cursor: not-allowed; opacity: .62; }
.image-drop-zone > input[type="file"] {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.image-drop-copy { display: grid; gap: 5px; color: #7c7168; font-size: 11px; line-height: 1.5; }
.image-drop-copy strong { color: #564c43; font-size: 12px; font-weight: 500; }
.image-preview-list { display: flex; flex-wrap: wrap; gap: 8px; }
.image-preview-item {
  position: relative;
  width: 74px;
  height: 74px;
  border-radius: 8px;
  overflow: hidden;
  background: #eee8e0;
}
.image-preview-item img { width: 100%; height: 100%; object-fit: cover; }
.image-preview-item button {
  position: absolute;
  right: 3px;
  top: 3px;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(29, 24, 20, .72);
  color: #fff;
}
.image-upload-status { color: #978d83; font-size: 11px; }
.decoration-section-builder {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid #e8e1d8;
  border-radius: 14px;
  background: #fcfaf7;
}
.decoration-section-row {
  display: grid;
  grid-template-columns: minmax(160px, 1fr) 150px 150px;
  gap: 12px;
  align-items: center;
  padding: 10px 0;
  border-top: 1px solid #eee7df;
}
.decoration-section-row label { display: flex; align-items: center; gap: 8px; color: #746a61; font-size: 11px; }
.decoration-section-row input { width: 76px; }
.empty-state { padding: 70px 20px; color: var(--muted); text-align: center; }
.toast {
  position: fixed;
  right: 30px;
  top: 26px;
  z-index: 30;
  max-width: 360px;
  padding: 13px 18px;
  border-radius: 12px;
  background: #252126;
  color: #fff;
  box-shadow: 0 16px 40px rgba(0,0,0,.14);
}

.course-workbench { --course-blue: #3377df; --course-soft-blue: #eef5ff; }
.course-guidance {
  display: grid;
  grid-template-columns: minmax(260px, 1.3fr) repeat(2, minmax(240px, 1fr));
  gap: 12px;
  padding: 14px;
  border-radius: 14px;
  background:
    linear-gradient(100deg, rgba(235,249,255,.96), rgba(239,246,255,.96)),
    #edf7ff;
}
.course-guidance-lead {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  background: linear-gradient(110deg, #53bceb, #5f90ef);
  color: #fff;
  border-radius: 11px;
}
.course-guidance-lead > span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.7);
  border-radius: 16px 16px 22px 16px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: .08em;
  text-align: center;
  transform: rotate(-5deg);
}
.course-guidance-lead small,
.course-guidance button small { display: block; font-size: 11px; opacity: .75; }
.course-guidance-lead strong { display: block; margin-top: 6px; font-size: 16px; line-height: 1.5; }
.course-guidance > button {
  display: grid;
  grid-template-columns: 30px 1fr auto;
  align-items: center;
  gap: 10px;
  min-height: 92px;
  padding: 15px 17px;
  border: 1px solid rgba(127, 164, 219, .22);
  border-radius: 11px;
  background: rgba(255,255,255,.76);
  color: #2c3038;
  text-align: left;
}
.course-guidance > button b { color: #4a83d7; font-size: 18px; }
.course-guidance > button strong { display: block; font-size: 14px; }
.course-guidance > button small { margin-top: 6px; color: #7c8491; line-height: 1.55; }
.course-guidance > button em { color: #336fd0; font-size: 12px; font-style: normal; white-space: nowrap; }
.course-main-tabs {
  display: flex;
  gap: 32px;
  margin-top: 24px;
  border-bottom: 1px solid #e4e4e4;
}
.course-main-tabs button {
  padding: 14px 2px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #333;
  font-size: 16px;
}
.course-main-tabs button.active { border-bottom-color: var(--course-blue); font-weight: 600; }
.course-filter-panel {
  margin-top: 18px;
  padding: 0;
}
.course-filter-grid {
  display: grid;
  grid-template-columns: minmax(310px, 1.7fr) minmax(180px, 1fr) minmax(220px, 1.2fr) minmax(150px, .85fr) minmax(150px, .85fr);
  gap: 12px;
}
.course-filter-grid .dy-control,
.course-filter-second .dy-control {
  min-height: 42px;
  border-color: #d8d8d8;
  border-radius: 7px;
  font-size: 13px;
}
.course-filter-grid .dy-control > span,
.course-filter-second .dy-control > span { padding-right: 9px; font-size: 12px; white-space: nowrap; }
.course-filter-grid .dy-control input,
.course-filter-grid .dy-control select,
.course-filter-second .dy-control select { height: 38px; padding: 0 8px; font-size: 12px; }
.goods-filter-grid { grid-template-columns: minmax(240px, 1.3fr) repeat(3, minmax(150px, 1fr)); }
.goods-filter-panel .course-filter-second { grid-template-columns: 120px 90px 1fr; }
.course-search-control { position: relative; }
.course-search-control button {
  width: 34px;
  height: 34px;
  border: 0;
  background: transparent;
  color: #222;
  font-size: 25px;
  line-height: 1;
}
.course-filter-second {
  display: grid;
  grid-template-columns: minmax(230px, 1.2fr) 108px 84px 1fr;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
}
.course-filter-second .primary-small,
.course-filter-second .course-reset-button { height: 40px; border-radius: 7px; }
.course-reset-button {
  border: 1px solid #d6d6d6;
  background: #fff;
  color: #333;
}
.course-filter-tip { color: #999; font-size: 11px; }
.course-status-strip {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin: 18px 0;
}
.course-status-strip button {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: #f5f6f8;
  color: #60656e;
  font-size: 12px;
}
.course-status-strip button strong { color: #2870df; font-size: 13px; }
.course-status-strip button.active { border-color: #92b9f1; background: #edf5ff; color: #1f5fb9; }
.course-action-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 62px;
  margin-bottom: 14px;
}
.course-batch-actions,
.course-primary-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.course-batch-actions > span {
  margin-right: 4px;
  color: #777;
  font-size: 12px;
}
.course-batch-actions > span strong { color: #276bce; font-size: 14px; }
.course-batch-actions > button,
.course-batch-actions > details > summary,
.course-primary-actions > button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid #d2d2d2;
  border-radius: 7px;
  background: #fff;
  color: #333;
  font-size: 12px;
  line-height: 36px;
  list-style: none;
}
.course-batch-actions summary::-webkit-details-marker,
.course-batch-more summary::-webkit-details-marker { display: none; }
.course-primary-actions .create-course-button {
  border-color: var(--course-blue);
  background: var(--course-blue);
  color: #fff;
  padding: 0 22px;
}
.course-batch-more,
.course-row-menu { position: relative; }
.course-batch-more > div,
.course-row-menu > div {
  position: absolute;
  right: 0;
  top: 43px;
  z-index: 14;
  min-width: 126px;
  padding: 7px;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(35, 43, 55, .15);
}
.course-batch-more > div button,
.course-row-menu > div button {
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #333;
  text-align: left;
  font-size: 12px;
}
.course-batch-more > div button:hover,
.course-row-menu > div button:hover { background: #f4f5f7; }
.course-batch-more > div .danger,
.course-row-menu > div .danger { color: var(--danger); }
.course-floating-menu {
  position: fixed;
  z-index: 90;
  width: 160px;
  padding: 7px;
  border: 1px solid #dedede;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 16px 42px rgba(32, 42, 55, .2);
}
.course-floating-menu button {
  display: block;
  width: 100%;
  padding: 9px 10px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #30343a;
  text-align: left;
  font-size: 12px;
}
.course-floating-menu button:hover { background: #f4f5f7; }
.course-floating-menu button.danger { color: var(--danger); }
.course-table-wrap {
  overflow-x: auto;
  border: 1px solid #e2e2e2;
  border-radius: 8px;
  background: #fff;
}
.course-table { min-width: 1240px; }
.goods-table { min-width: 1320px; }
.course-table th { padding: 12px 10px; background: #f7f7f8; color: #717680; white-space: nowrap; }
.course-table td { padding: 14px 10px; }
.course-table td:nth-child(5),
.course-table td:nth-child(6) { font-variant-numeric: tabular-nums; }
.course-table tr:hover td { background: #fcfdff; }
.course-thumb {
  width: 58px;
  height: 58px;
  flex: 0 0 58px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 6px;
  background: linear-gradient(145deg, #f7e7da, #d7b696);
  color: #fff;
  font-family: "Songti SC", serif;
  font-size: 23px;
}
.course-thumb img { width: 100%; height: 100%; object-fit: cover; }
.course-info-cell { min-width: 300px; }
.course-info-cell > div { display: inline-block; vertical-align: top; }
.course-info-copy { width: calc(100% - 70px); padding-left: 10px; }
.course-name-button {
  display: block;
  max-width: 280px;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: transparent;
  color: #222;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.course-name-button:hover { color: var(--course-blue); }
.course-info-copy > small { display: block; margin-top: 5px; color: #8a8f98; font-size: 10px; }
.course-type-tag {
  display: inline-block;
  margin-top: 6px;
  padding: 3px 7px;
  border: 1px solid #e2e2e2;
  border-radius: 5px;
  color: #666;
  font-size: 10px;
}
.course-type-tag.pinned { margin-left: 4px; border-color: #eadbb7; background: #fff9e8; color: #8a6925; }
.course-price-cell strong { display: block; color: #222; font-size: 15px; }
.course-price-cell del { display: inline-block; margin-top: 4px; color: #a0a0a0; font-size: 11px; }
.course-price-cell small,
.course-sale-cell small,
.course-status-cell small {
  display: block;
  margin-top: 5px;
  color: #8d929a;
  font-size: 10px;
  line-height: 1.5;
}
.danger-text { color: var(--danger) !important; }
.course-sale-cell { min-width: 180px; }
.sale-state { display: block; color: #4c8e61; font-size: 12px; font-weight: 500; }
.sale-state.scheduled { color: #8b6c20; }
.sale-state.ended { color: #8c929c; }
.course-status-cell { min-width: 128px; }
.badge.blue { background: #e8f1ff; color: #2e68b4; }
.badge.muted { background: #f0f1f2; color: #777d86; }
.owner-pill { display: inline-block; padding: 4px 8px; border-radius: 999px; background: #f2f0f7; color: #695b83; font-size: 11px; }
.course-row-actions { min-width: 158px; white-space: nowrap; }
.course-row-actions > button,
.course-row-menu > summary {
  display: block;
  padding: 3px 0;
  border: 0;
  background: transparent;
  color: #326fca;
  font-size: 11px;
  cursor: pointer;
  list-style: none;
}
.course-row-menu > summary { color: #666; }
.course-row-menu > div { top: 25px; }
.course-result-footer { padding: 16px 2px; color: #8a8f97; font-size: 11px; }
.course-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(22, 28, 38, .28);
  backdrop-filter: blur(2px);
}
.course-drawer {
  position: fixed;
  inset: 33vh 0 0 auto;
  z-index: 41;
  width: min(760px, 94vw);
  height: 67vh;
  max-height: 67vh;
  display: flex;
  flex-direction: column;
  background: #f7f8fa;
  box-shadow: -18px 0 55px rgba(24, 31, 43, .2);
}
.course-drawer-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 26px 28px 20px;
  border-bottom: 1px solid #e2e3e5;
  background: #fff;
}
.course-drawer-head h2,
.course-modal-head h2 { margin: 7px 0 0; font-family: "Songti SC", serif; font-size: 26px; }
.course-drawer-head p,
.course-modal-head p { margin: 6px 0 0; color: #8a8d94; font-size: 12px; }
.course-drawer-close,
.course-modal-head > button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #f0f1f3;
  color: #555;
  font-size: 23px;
}
.course-editor-form { flex: 1; overflow-y: auto; }
.course-editor-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.course-form-section {
  margin: 14px 18px;
  padding: 22px;
  border: 1px solid #e1e2e5;
  border-radius: 12px;
  background: #fff;
}
.course-form-section h3 { margin: 0 0 17px; font-size: 15px; }
.course-form-section .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.course-form-section .form-grid input,
.course-form-section .form-grid select { height: 42px; }
.course-field-help { margin: 11px 0 0; color: #8c9198; font-size: 11px; line-height: 1.6; }
.course-scope-options { display: grid; gap: 10px; margin-bottom: 14px; color: #565c65; font-size: 12px; }
.course-scope-options label { display: flex; align-items: center; gap: 8px; }
.course-store-picker { border: 1px solid #dedfe2; border-radius: 9px; overflow: hidden; }
.course-store-picker > input {
  width: 100%;
  height: 42px;
  padding: 0 13px;
  border: 0;
  border-bottom: 1px solid #ececee;
  outline: none;
}
.course-store-picker-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-height: 260px;
  overflow-y: auto;
  padding: 7px;
}
.course-store-option {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 9px;
  border-radius: 7px;
  color: #484d55;
  font-size: 11px;
}
.course-store-option:hover { background: #f4f7fb; }
.course-store-option strong { display: block; font-weight: 500; line-height: 1.45; }
.course-store-option small { display: block; margin-top: 3px; color: #93989f; font-size: 9px; }
.course-drawer-actions {
  position: sticky;
  bottom: 0;
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid #e2e3e5;
  background: rgba(255,255,255,.96);
}
.course-drawer-actions button {
  min-width: 118px;
  height: 42px;
  border: 0;
  border-radius: 7px;
}
.course-drawer-actions .secondary { background: #e9eaec; color: #555; }
.course-drawer-actions .save,
.course-modal .form-actions .save,
.course-qr-body .save {
  background: var(--course-blue);
  color: #fff;
}
.course-modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 120;
  background: rgba(22, 28, 38, .34);
  backdrop-filter: blur(2px);
}
.course-modal {
  position: fixed;
  left: 50%;
  top: auto;
  bottom: 0;
  z-index: 121;
  width: min(620px, 92vw);
  height: 66vh;
  max-height: 66vh;
  overflow-y: auto;
  padding: 26px;
  border-radius: 14px 14px 0 0;
  background: #f8f9fb;
  box-shadow: 0 24px 80px rgba(18, 28, 43, .28);
  transform: translateX(-50%);
}
.course-modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.course-wide-label { display: grid; gap: 8px; color: #626872; font-size: 12px; }
.course-wide-label select {
  width: 100%;
  height: 44px;
  padding: 0 11px;
  border: 1px solid #d9dade;
  border-radius: 8px;
  background: #fff;
}
.course-pin-modal { width: min(560px, 92vw); }
.course-qr-modal { width: min(430px, 92vw); }
.course-qr-body { display: grid; justify-items: center; gap: 13px; text-align: center; }
.course-qr-body img { width: 260px; height: 260px; border: 1px solid #e4e5e7; border-radius: 10px; background: #fff; }
.course-qr-body p { margin: 0; color: #777c84; font-size: 11px; }
.course-qr-body input {
  width: 100%;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #d8d9dc;
  border-radius: 7px;
  background: #fff;
  color: #6e737b;
  font-size: 11px;
}
.course-qr-body .save { min-width: 150px; height: 40px; border: 0; border-radius: 7px; }

.transaction-workbench { --transaction-blue: #2f73d8; }
.transaction-title-row {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.transaction-title-row h2 { margin: 7px 0 0; font-family: "Songti SC", serif; font-size: 28px; }
.transaction-title-row p { margin: 7px 0 0; color: #858b94; font-size: 12px; }
.transaction-top-actions { display: flex; gap: 9px; }
.transaction-top-actions button {
  height: 40px;
  padding: 0 17px;
  border: 1px solid #d8d9dd;
  border-radius: 8px;
  background: #fff;
  color: #343940;
  font-size: 12px;
}
.transaction-top-actions .primary-transaction { border-color: #2f73d8; background: #2f73d8; color: #fff; }
.transaction-tabs {
  display: flex;
  gap: 28px;
  margin-top: 24px;
  border-bottom: 1px solid #e2e3e6;
}
.transaction-tabs button {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 13px 3px;
  border: 0;
  background: transparent;
  color: #4b5159;
  font-size: 14px;
}
.transaction-tabs button span {
  min-width: 20px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #f0f2f5;
  color: #6e7681;
  font-size: 10px;
}
.transaction-tabs button.active { color: #1e61bd; font-weight: 600; }
.transaction-tabs button.active::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: #2f73d8;
}
.transaction-tabs button.active span { background: #e8f2ff; color: #2369c9; }
.transaction-smart-tip {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding: 12px 16px;
  border: 1px solid #dcecff;
  border-radius: 8px;
  background: #f2f8ff;
  color: #466487;
}
.transaction-smart-tip span {
  padding: 3px 8px;
  border-radius: 4px;
  background: #e1efff;
  color: #2468c5;
  font-size: 11px;
  white-space: nowrap;
}
.transaction-smart-tip p { margin: 0; font-size: 12px; line-height: 1.6; }
.transaction-filter { margin-top: 16px; }
.transaction-filter-row { display: grid; gap: 12px; align-items: center; }
.transaction-filter-row.primary-row {
  grid-template-columns: minmax(260px, 1fr) minmax(380px, 1.2fr) auto;
}
.transaction-filter-row.secondary-row {
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  margin-top: 12px;
}
.transaction-filter .dy-control { min-height: 42px; border-color: #d8d9dd; border-radius: 7px; font-size: 12px; }
.transaction-filter .dy-control > span { padding-right: 9px; white-space: nowrap; }
.transaction-filter .dy-control input,
.transaction-filter .dy-control select { width: 100%; height: 38px; padding: 0 8px; }
.transaction-date-control { grid-template-columns: auto 1fr auto 1fr; }
.transaction-date-control i { padding: 0 8px; color: #949aa3; font-style: normal; }
.transaction-filter-actions { display: flex; gap: 9px; }
.transaction-filter-actions button {
  height: 42px;
  padding: 0 17px;
  border: 1px solid #d7d8dc;
  border-radius: 7px;
  background: #fff;
}
.transaction-filter-actions .primary-small { border-color: #2f73d8; background: #2f73d8; color: #fff; }
.transaction-summary-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}
.transaction-summary-row > div {
  min-height: 82px;
  padding: 15px 18px;
  border: 1px solid #e2e3e6;
  border-radius: 10px;
  background: #fff;
}
.transaction-summary-row small { display: block; color: #858c95; font-size: 11px; }
.transaction-summary-row strong { margin-top: 8px; font-family: "Songti SC", serif; font-size: 25px; font-weight: 600; }
.transaction-summary-row span { margin-left: 5px; color: #9298a1; font-size: 10px; }
.transaction-list-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: 20px 2px 10px;
  color: #4d5259;
  font-size: 12px;
}
.transaction-list-head small { color: #979ca4; font-size: 10px; }
.transaction-table { min-width: 1260px; }
.transaction-table td { height: 92px; }
.transaction-product-cell { display: flex; align-items: center; gap: 11px; min-width: 250px; }
.transaction-product-cell .course-thumb { width: 64px; height: 64px; flex-basis: 64px; }
.transaction-product-cell strong { display: block; max-width: 260px; overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.transaction-product-cell small { display: block; margin-top: 4px; color: #8c929a; font-size: 9px; }
.transaction-money { color: #20242a; font-size: 14px; font-weight: 600; }
.transaction-refund { color: #c14a40; }
.transaction-code {
  padding: 5px 7px;
  border: 1px dashed #c5c9cf;
  border-radius: 5px;
  background: #fafbfc;
  color: #4c5560;
  font-size: 11px;
}
.transaction-detail-link {
  padding: 0;
  border: 0;
  background: transparent;
  color: #276ac8;
  font-size: 12px;
}
.transaction-pagination { margin-bottom: 20px; }
.transaction-pagination button:disabled { opacity: .42; }
.transaction-drawer { width: min(820px, 96vw); }
.transaction-detail-body { flex: 1; overflow-y: auto; padding-bottom: 20px; }
.transaction-product-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 20px 22px 0;
  padding: 18px;
  border: 1px solid #e4e6e9;
  border-radius: 12px;
  background: #fff;
}
.transaction-product-mark {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: linear-gradient(145deg,#f3e2d5,#d3ad89);
  color: #fff;
  font-family: "Songti SC", serif;
  font-size: 22px;
}
.transaction-product-banner > div:nth-child(2) { flex: 1; }
.transaction-product-banner strong { display: block; font-size: 14px; line-height: 1.55; }
.transaction-product-banner small { display: block; margin-top: 6px; color: #898f98; font-size: 10px; }
.transaction-product-banner > b { color: #252a30; font-size: 17px; white-space: nowrap; }
.transaction-detail-section {
  margin: 14px 22px 0;
  padding: 20px;
  border: 1px solid #e4e6e9;
  border-radius: 12px;
  background: #fff;
}
.transaction-detail-section h3 { margin: 0 0 16px; font-size: 15px; }
.transaction-fact-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 17px 22px; }
.transaction-fact-grid .wide { grid-column: 1 / -1; }
.transaction-fact-grid small { display: block; color: #9298a1; font-size: 10px; }
.transaction-fact-grid strong { display: block; margin-top: 6px; color: #353a41; font-size: 12px; font-weight: 500; line-height: 1.55; word-break: break-all; }
.copy-inline {
  margin-left: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #276ac8;
  font-size: 10px;
}
.transaction-amount-list { display: grid; gap: 12px; }
.transaction-amount-list > div { display: flex; justify-content: space-between; gap: 20px; color: #686e76; font-size: 12px; }
.transaction-amount-list strong { color: #262b31; font-weight: 600; }
.transaction-note { margin: 0; color: #626870; font-size: 12px; line-height: 1.8; }
.danger-fill { background: var(--danger) !important; color: #fff; }
.after-sale-filter-row {
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  margin-top: 12px;
}
.after-sale-table { min-width: 1050px; }
.after-sale-table td { height: 92px; }
.after-sale-assist {
  margin-top: 16px;
  padding: 20px;
  border: 1px solid #d6e6fb;
  border-radius: 12px;
  background: #f7fbff;
}
.after-sale-assist > form {
  display: grid;
  grid-template-columns: 1fr 130px;
  max-width: 820px;
  border: 2px solid #2f73d8;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
}
.after-sale-assist > form input {
  height: 52px;
  padding: 0 17px;
  border: 0;
  outline: none;
  font-size: 14px;
}
.after-sale-assist > form button {
  border: 0;
  background: #2f73d8;
  color: #fff;
  font-size: 14px;
}
.assist-guide { margin-top: 20px; }
.assist-guide h3 { margin: 0; font-size: 14px; }
.assist-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 15px; }
.assist-step {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 5px 14px;
  align-items: center;
  padding: 14px;
  border: 1px solid #e2e7ed;
  border-radius: 10px;
  background: #fff;
}
.assist-step strong { align-self: end; font-size: 12px; }
.assist-step small { align-self: start; color: #8d949d; font-size: 10px; line-height: 1.5; }
.assist-phone {
  grid-row: 1 / 3;
  width: 70px;
  height: 118px;
  padding: 13px 8px;
  border: 2px solid #d9dde3;
  border-radius: 13px;
  background: linear-gradient(#fff,#f8f9fa);
}
.assist-phone span { display: block; width: 24px; height: 24px; margin: 0 auto 11px; border-radius: 6px; background: #d9e9fc; }
.assist-phone i { display: block; height: 5px; margin-top: 8px; border-radius: 3px; background: #e5e8ec; }
.after-sale-workbench .transaction-title-row h2 { margin-top: 7px; }
.goods-order-tabs {
  gap: 22px;
  overflow-x: auto;
  scrollbar-width: thin;
}
.goods-order-tabs button { flex: 0 0 auto; }
.goods-ops-tip {
  border-color: #eadfca;
  background: #fcf8f0;
  color: #76624a;
}
.goods-ops-tip span {
  background: #f3e7d3;
  color: #846331;
}
.goods-order-filter .secondary-row {
  grid-template-columns: minmax(210px, 280px) minmax(320px, 1fr);
}
.goods-ops-filter-note {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 42px;
  padding: 0 14px;
  border: 1px dashed #ddd5ca;
  border-radius: 8px;
  background: #fbf9f5;
}
.goods-ops-filter-note strong { color: #564a3e; font-size: 11px; white-space: nowrap; }
.goods-ops-filter-note span { color: #8d8378; font-size: 10px; line-height: 1.5; }
.goods-orders-table { min-width: 1260px; }
.goods-orders-table td { height: 104px; vertical-align: middle; }
.table-address {
  display: block;
  max-width: 240px;
  margin-top: 5px;
  overflow: hidden;
  color: #7f858d;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.muted-text { color: #9a9fa6; font-size: 11px; }
.goods-order-drawer { width: min(860px, 96vw); }
.goods-order-product { background: linear-gradient(120deg,#fff,#fcf8f1); }
.goods-order-alert {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 14px 22px 0;
  padding: 15px 18px;
  border: 1px solid #efd4a9;
  border-radius: 11px;
  background: #fff8ec;
}
.goods-order-alert div { display: grid; gap: 5px; }
.goods-order-alert strong { color: #8a5d20; font-size: 12px; }
.goods-order-alert span { color: #92734c; font-size: 10px; line-height: 1.5; }
.goods-order-alert button {
  min-width: 112px;
  height: 36px;
  border: 0;
  border-radius: 7px;
  background: #9c6c2c;
  color: #fff;
  font-size: 11px;
}
.goods-logistics-section { overflow: hidden; }
.goods-section-title {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.goods-section-title h3 { margin-bottom: 5px !important; }
.goods-section-title p {
  margin: 0;
  color: #9298a1;
  font-size: 10px;
  line-height: 1.6;
}
.goods-shipping-form {
  display: grid;
  grid-template-columns: minmax(170px, .8fr) minmax(220px, 1.4fr) 116px;
  gap: 10px;
  align-items: end;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid #e5e2dc;
  border-radius: 10px;
  background: #fbfaf8;
}
.goods-shipping-form label {
  display: grid;
  gap: 7px;
  color: #777168;
  font-size: 10px;
}
.goods-shipping-form input,
.goods-shipping-form select {
  width: 100%;
  height: 40px;
  padding: 0 10px;
  border: 1px solid #d9d6d0;
  border-radius: 7px;
  background: #fff;
  font-size: 11px;
}
.goods-shipping-form button {
  height: 40px;
  border: 0;
  border-radius: 7px;
  background: #2f73d8;
  color: #fff;
  font-size: 11px;
}
.goods-tracking-summary {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  padding: 13px;
  border-radius: 8px;
  background: #f5f6f8;
  font-size: 12px;
}
.goods-tracking-summary span { color: #69717b; }
.goods-logistics-timeline {
  display: grid;
  gap: 0;
  margin-top: 18px;
  padding-left: 4px;
}
.goods-logistics-event {
  position: relative;
  display: grid;
  grid-template-columns: 18px 1fr;
  gap: 10px;
  min-height: 76px;
}
.goods-logistics-event::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 16px;
  bottom: 0;
  width: 1px;
  background: #e0e2e5;
}
.goods-logistics-event:last-child::before { display: none; }
.goods-logistics-dot {
  position: relative;
  z-index: 1;
  width: 13px;
  height: 13px;
  margin-top: 2px;
  border: 3px solid #d8dce1;
  border-radius: 50%;
  background: #fff;
}
.goods-logistics-event.latest .goods-logistics-dot {
  border-color: #2f73d8;
  box-shadow: 0 0 0 4px #eaf2ff;
}
.goods-logistics-event-copy { padding-bottom: 18px; }
.goods-logistics-event-copy > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}
.after-sale-feedback { display: grid; gap: 14px; margin-top: 16px; }
.after-sale-feedback small { color: #8a7e73; }
.after-sale-feedback p { margin: 6px 0 0; color: #4f4740; font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.after-sale-feedback audio { width: 100%; margin-top: 8px; }
.after-sale-photo-grid { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 8px; }
.after-sale-photo-grid img { width: 92px; height: 92px; border-radius: 11px; object-fit: cover; border: 1px solid #e0d6cc; }
.goods-logistics-event-copy strong { color: #333940; font-size: 12px; }
.goods-logistics-event-copy time { color: #979da5; font-size: 9px; white-space: nowrap; }
.goods-logistics-event-copy p { margin: 7px 0 4px; color: #626a73; font-size: 11px; line-height: 1.65; }
.goods-logistics-event-copy small { color: #9a9fa6; font-size: 9px; }
.goods-logistics-form {
  padding: 0;
  border: 0;
  background: transparent;
}
.goods-logistics-form .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.goods-logistics-form textarea { min-height: 86px; }
.assessment-overview {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 10px;
  margin-top: 20px;
}
.assessment-overview > div {
  padding: 16px 18px;
  border: 1px solid #e6ded4;
  border-radius: 13px;
  background: #fff;
}
.assessment-overview small { display: block; color: #8c8379; font-size: 10px; }
.assessment-overview strong {
  display: block;
  margin-top: 8px;
  color: #2e2721;
  font-family: "Songti SC", serif;
  font-size: 28px;
}
.assessment-subject-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.assessment-subject-summary span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 11px;
  border-radius: 999px;
  background: #f4ede4;
  color: #735d47;
  font-size: 10px;
}
.assessment-subject-summary b { color: #a77446; font-size: 14px; }
.assessment-filter-row { grid-template-columns: repeat(2,minmax(180px,240px)); }
.assessment-table { min-width: 980px; }
.assessment-table td { height: 82px; }
.assessment-subject-cell { min-width: 240px; }
.assessment-subject-icon {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: linear-gradient(145deg,#ead7c4,#c5a17d);
  color: #fff;
  font-family: "Songti SC", serif;
  font-size: 18px;
}
.assessment-config-panel { margin: 14px 0 18px; padding: 18px; }
.assessment-config-subjects { display: grid; gap: 12px; }
.assessment-config-subject {
  border: 1px solid #E9E0D7;
  border-radius: 14px;
  background: #FCFAF7;
}
.assessment-config-subject > summary {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 13px 15px;
  cursor: pointer;
}
.assessment-config-subject > summary > span {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 9px;
  background: #EFE4D8;
  color: #765B47;
}
.assessment-config-subject > summary strong { flex: 1; font-size: 12px; }
.assessment-config-subject > summary small { color: #9B8F84; font-size: 10px; }
.assessment-config-subject > .form-grid { padding: 0 15px 15px; }
.assessment-config-questions {
  display: grid;
  gap: 9px;
  padding: 0 15px 15px;
}
.assessment-config-question {
  padding: 13px;
  border: 1px solid #EEE7DF;
  border-radius: 11px;
  background: #fff;
}
.assessment-config-question-head {
  display: flex;
  justify-content: space-between;
  margin-bottom: 10px;
  color: #73675D;
}
.assessment-config-question-head strong { font-size: 11px; }
.assessment-config-question-head small { color: #AAA096; font-size: 9px; }
.assessment-drawer { width: min(760px,96vw); }
.assessment-result-hero {
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 20px 22px 0;
  padding: 22px;
  border-radius: 16px;
  background: linear-gradient(135deg,#2b2420,#514134);
  color: #fff9f1;
}
.assessment-score {
  width: 104px;
  height: 104px;
  flex: 0 0 104px;
  display: grid;
  place-items: center;
  border: 5px solid rgba(255,255,255,.16);
  border-top-color: #dfb786;
  border-radius: 50%;
  font-family: "Songti SC", serif;
  font-size: 40px;
}
.assessment-result-hero small { color: #d9b28b; font-size: 10px; letter-spacing: .12em; }
.assessment-result-hero strong { display: block; margin-top: 6px; font-family: "Songti SC", serif; font-size: 23px; }
.assessment-result-hero p { margin: 7px 0 0; color: rgba(255,249,241,.7); font-size: 11px; line-height: 1.65; }
.assessment-dimensions { display: grid; gap: 11px; }
.assessment-dimensions > div {
  display: grid;
  grid-template-columns: 80px 1fr 36px;
  gap: 10px;
  align-items: center;
  color: #686159;
  font-size: 11px;
}
.assessment-dimensions > div > div { height: 7px; overflow: hidden; border-radius: 99px; background: #ece7e1; }
.assessment-dimensions i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#a7b29f,#c59669); }
.assessment-dimensions strong { color: #9a6b40; text-align: right; }
.assessment-answer-list { display: grid; gap: 9px; }
.assessment-answer {
  display: flex;
  gap: 10px;
  padding: 11px 12px;
  border-radius: 10px;
  background: #f7f5f2;
}
.assessment-answer > span {
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #eae5df;
  color: #766d64;
  font-size: 10px;
}
.assessment-answer.correct > span { background: #e5efe4; color: #567150; }
.assessment-answer.wrong > span { background: #f8e8e4; color: #ae4e43; }
.assessment-answer strong { font-size: 11px; }
.assessment-answer p { margin: 4px 0 0; color: #7c746c; font-size: 10px; line-height: 1.55; }
.customer-growth-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}
.customer-growth-head h2 { margin: 7px 0 0; font-family: "Songti SC", serif; font-size: 30px; }
.customer-growth-head p { margin: 7px 0 0; color: #858078; font-size: 12px; }
.customer-growth-head button {
  height: 38px;
  padding: 0 15px;
  border: 1px solid #dcd3c8;
  border-radius: 9px;
  background: #fff;
}
.customer-subtabs {
  display: flex;
  gap: 8px;
  margin-top: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e1dacf;
}
.customer-subtabs button {
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 9px;
  background: #f1ece5;
  color: #6d645b;
  font-size: 11px;
}
.customer-subtabs button.active { border-color: #302a24; background: #302a24; color: #fff; }
.customer-growth-stats {
  display: grid;
  grid-template-columns: repeat(6,minmax(0,1fr));
  gap: 10px;
  margin-top: 16px;
}
.customer-growth-stats > div {
  padding: 16px;
  border: 1px solid #e4ddd4;
  border-radius: 13px;
  background: #fff;
}
.customer-growth-stats small { display: block; color: #8c837a; font-size: 10px; }
.customer-growth-stats strong { display: block; margin-top: 8px; font-family: "Songti SC", serif; font-size: 27px; }
.customer-dashboard-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 16px;
  margin-top: 16px;
}
.customer-dashboard-grid.lower { grid-template-columns: 1fr 1fr; }
.customer-funnel-row {
  display: grid;
  grid-template-columns: 70px 1fr 32px;
  gap: 10px;
  align-items: center;
  margin-top: 11px;
  color: #655d54;
  font-size: 11px;
}
.customer-funnel-row > div { height: 9px; overflow: hidden; border-radius: 99px; background: #efeae3; }
.customer-funnel-row i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#a9b49f,#c69467); }
.customer-funnel-row strong { color: #8a613d; text-align: right; }
.customer-trend-bars {
  height: 170px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 5px;
  margin-top: 12px;
}
.customer-trend-day { flex: 1; display: grid; gap: 5px; text-align: center; }
.customer-trend-day .bars { height: 135px; display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.customer-trend-day i,
.customer-trend-day b { width: 5px; min-height: 3px; border-radius: 4px 4px 0 0; background: #c69a71; }
.customer-trend-day b { background: #9aa992; }
.customer-trend-day span { color: #9a9289; font-size: 8px; }
.customer-legend { display: flex; justify-content: flex-end; gap: 14px; margin-top: 8px; color: #898178; font-size: 9px; }
.customer-legend span { display: inline-flex; align-items: center; gap: 5px; }
.customer-legend i,.customer-legend b { width: 7px; height: 7px; border-radius: 2px; background: #c69a71; }
.customer-legend b { background: #9aa992; }
.customer-priority-list { display: grid; gap: 7px; }
.customer-priority-list button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 11px;
  border: 0;
  border-radius: 10px;
  background: #f9f7f4;
  text-align: left;
}
.customer-priority-list button:hover { background: #f3eee7; }
.risk-dot { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: #92a88d; }
.risk-dot.medium { background: #d0a35e; }
.risk-dot.high { background: #b94b42; }
.customer-priority-list button > div { flex: 1; }
.customer-priority-list strong { display: block; font-size: 11px; }
.customer-priority-list small { display: block; margin-top: 4px; color: #8e857c; font-size: 9px; }
.customer-priority-list em { color: #9c6b41; font-size: 14px; font-style: normal; font-weight: 700; }
.customer-assessment-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(84px,1fr));
  gap: 8px;
}
.customer-assessment-summary > div {
  padding: 12px;
  border-radius: 10px;
  background: #f5f0e9;
  text-align: center;
}
.customer-assessment-summary span { display: block; color: #74685c; font-size: 10px; }
.customer-assessment-summary strong { font-family: "Songti SC", serif; font-size: 23px; }
.customer-assessment-summary small { margin-left: 3px; color: #9b9288; font-size: 8px; }
.customer-recent-events { display: grid; gap: 7px; margin-top: 14px; }
.customer-recent-events > div { padding-top: 8px; border-top: 1px solid #eee8e1; }
.customer-recent-events span { display: block; font-size: 10px; font-weight: 600; }
.customer-recent-events small { display: block; margin-top: 4px; color: #938a80; font-size: 9px; line-height: 1.5; }
.customer-ai-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 16px; }
.customer-ai-card { padding: 18px; border: 1px solid #e4dbd0; border-radius: 16px; background: #fff; }
.customer-ai-card-head { display: flex; justify-content: space-between; gap: 14px; }
.customer-ai-card-head strong { display: block; font-size: 14px; }
.customer-ai-card-head small { display: block; margin-top: 5px; color: #8e857b; font-size: 10px; }
.customer-risk-score {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f4e8dc;
  color: #9c673d;
  font-family: "Songti SC", serif;
  font-size: 20px;
}
.customer-ai-card > p { margin: 14px 0 0; color: #554c43; font-size: 11px; line-height: 1.65; }
.customer-ai-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.customer-ai-tags span { padding: 4px 7px; border-radius: 999px; background: #f4f0eb; color: #776e65; font-size: 8px; }
.customer-ai-script { margin-top: 11px; padding: 11px; border-left: 3px solid #b88b60; border-radius: 0 8px 8px 0; background: #fbf7f1; color: #76695c; font-size: 10px; line-height: 1.65; }
.customer-growth-drawer { width: min(900px,97vw); }
.customer-ai-hero { display: flex; align-items: center; gap: 18px; margin: 20px 22px 0; padding: 18px; border-radius: 14px; background: #2e2822; color: #fffaf3; }
.customer-risk-ring { width: 82px; height: 82px; flex: 0 0 82px; display: grid; place-items: center; border: 5px solid #d6b07f; border-radius: 50%; }
.customer-risk-ring strong { font-family: "Songti SC", serif; font-size: 28px; line-height: 1; }
.customer-risk-ring small { margin-top: -18px; color: #cdbfb0; font-size: 8px; }
.customer-risk-ring.medium { border-color: #d4a34f; }
.customer-risk-ring.high { border-color: #cf6e61; }
.customer-ai-hero > div:last-child span { color: #d9b68e; font-size: 9px; letter-spacing: .1em; }
.customer-ai-hero h3 { margin: 6px 0 0; font-size: 15px; line-height: 1.5; }
.customer-ai-hero p { margin: 6px 0 0; color: #cfc3b6; font-size: 10px; }
.customer-ai-reasons { display: flex; flex-wrap: wrap; gap: 7px; }
.customer-ai-reasons span { padding: 6px 9px; border-radius: 8px; background: #f2eee8; color: #695f55; font-size: 9px; }
.customer-script { margin-top: 13px; padding: 12px; border-left: 3px solid #a7b49e; background: #f7f8f4; }
.customer-sop-block { margin-top: 13px; padding: 13px; border: 1px solid #e4ddd4; border-radius: 10px; background: #fffdf9; }
.customer-sop-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.customer-sop-head strong { font-size: 11px; }
.customer-sop-head small { color: #8f857b; font-size: 9px; }
.customer-sop-block ol { margin: 10px 0 0; padding-left: 18px; color: #645b52; font-size: 10px; line-height: 1.7; }
.customer-sop-block p { margin: 9px 0 0; padding-top: 8px; border-top: 1px solid #eee9e3; color: #6e6257; font-size: 10px; line-height: 1.6; }
.customer-task-list { display: grid; gap: 7px; }
.customer-task-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px; border-radius: 9px; background: #f7f5f2; }
.customer-task-row strong { display: block; font-size: 11px; }
.customer-task-row small { display: block; margin-top: 4px; color: #8e857c; font-size: 9px; }
.customer-task-row button { padding: 6px 11px; border: 0; border-radius: 7px; background: #788a70; color: #fff; font-size: 9px; }
.customer-timeline { display: grid; }
.customer-timeline-item { position: relative; display: grid; grid-template-columns: 16px 1fr; gap: 9px; padding-bottom: 16px; }
.customer-timeline-item::before { content: ""; position: absolute; left: 5px; top: 12px; bottom: 0; width: 1px; background: #e2ded8; }
.customer-timeline-item:last-child::before { display: none; }
.customer-timeline-dot { width: 11px; height: 11px; margin-top: 3px; border: 3px solid #c9a47f; border-radius: 50%; background: #fff; }
.customer-timeline-item strong { font-size: 11px; }
.customer-timeline-item p { margin: 4px 0; color: #665e56; font-size: 10px; line-height: 1.55; }
.customer-timeline-item small { color: #999087; font-size: 8px; }
.customer-fact-row { display: flex; justify-content: space-between; padding: 7px 0; border-bottom: 1px solid #eee9e3; color: #766d64; font-size: 10px; }
.customer-assessment-note { margin-top: 7px; padding: 8px 10px; border-radius: 8px; background: #f3f6f1; color: #65715f; font-size: 9px; }
.customer-transfer-form {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr);
  gap: 12px;
  margin: 14px 0;
  padding: 15px;
  border: 1px solid #e5ddd2;
  border-radius: 11px;
  background: #fbf8f3;
}
.customer-transfer-form label {
  display: grid;
  align-content: start;
  gap: 7px;
  color: #72695f;
  font-size: 10px;
}
.customer-transfer-form input,
.customer-transfer-form select,
.customer-order-transfer-form input,
.customer-order-transfer-form select {
  width: 100%;
  height: 38px;
  padding: 0 10px;
  border: 1px solid #ddd5ca;
  border-radius: 8px;
  background: #fff;
  color: #403a34;
  font-size: 11px;
}
.customer-transfer-form .full-span { grid-column: 1 / -1; }
.customer-transfer-form .form-actions { grid-column: 1 / -1; margin-top: 2px; }
.customer-transfer-form .form-actions button { min-width: 108px; height: 36px; font-size: 10px; }
.customer-transfer-form .form-actions .secondary { color: #a64f45; }
.customer-transfer-form .transfer-check {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0;
}
.customer-transfer-form .transfer-check input { width: 15px; height: 15px; }
.customer-transfer-history {
  display: grid;
  gap: 7px;
  margin-top: 13px;
  padding-top: 12px;
  border-top: 1px solid #eee8e0;
}
.customer-transfer-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 10px;
  border-radius: 8px;
  background: #f7f4ef;
}
.customer-transfer-row span { color: #564d45; font-size: 10px; font-weight: 600; }
.customer-transfer-row small { color: #8d8379; font-size: 9px; text-align: right; }
.customer-order-list { display: grid; gap: 8px; }
.customer-order-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 9px 14px;
  align-items: center;
  padding: 12px;
  border: 1px solid #ece6de;
  border-radius: 9px;
  background: #faf8f5;
}
.customer-order-main strong { display: block; font-size: 11px; }
.customer-order-main small { display: block; margin-top: 4px; color: #8d8379; font-size: 9px; }
.customer-order-row > span { color: #6f553e; font-size: 12px; font-weight: 700; }
.customer-order-transfer-form {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(170px, 1fr) auto;
  gap: 8px;
  padding-top: 9px;
  border-top: 1px solid #eee7df;
}
.customer-order-transfer-form button {
  min-width: 82px;
  border: 0;
  border-radius: 8px;
  background: #4e596e;
  color: #fff;
  font-size: 10px;
}
.customer-lead-modal { width: min(720px, 92vw); }
.customer-lead-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.customer-lead-form .full-span { grid-column: 1 / -1; }
.launch-review-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 16px;
}
.launch-review-hero h2 { margin: 7px 0 0; font-family: "Songti SC", serif; font-size: 30px; }
.launch-review-hero p { max-width: 760px; margin: 7px 0 0; color: #7d756c; font-size: 12px; line-height: 1.65; }
.launch-review-hero > button {
  min-width: 176px;
  height: 42px;
  padding: 0 17px;
  border: 0;
  border-radius: 999px;
}
.launch-review-hero > button.save { background: #974e45; color: #fff; }
.launch-review-hero > button.secondary { background: #e8e2da; color: #443e38; }
.launch-review-summary {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.launch-review-summary > div {
  padding: 15px;
  border: 1px solid #e3ddd5;
  border-radius: 12px;
  background: #fff;
}
.launch-review-summary small { display: block; color: #8b837a; font-size: 9px; }
.launch-review-summary strong { display: block; margin-top: 7px; font-family: "Songti SC", serif; font-size: 25px; }
.launch-review-mode {
  margin-bottom: 14px;
  padding: 14px 17px;
  border: 1px solid #e0d9d0;
  border-radius: 12px;
  background: #f7f3ed;
}
.launch-review-mode.active { border-color: #a6b9a2; background: #f0f5ee; }
.launch-review-mode strong { font-size: 12px; }
.launch-review-mode p { margin: 5px 0 0; color: #726b63; font-size: 10px; line-height: 1.65; }
.launch-review-auto-panel { margin-bottom: 16px; }
.launch-review-blockers {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 9px;
}
.launch-review-blocker {
  padding: 13px 14px;
  border: 1px solid #ecd0ca;
  border-radius: 10px;
  background: #fff8f6;
}
.launch-review-blocker > span {
  display: block;
  color: #b75a50;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .12em;
}
.launch-review-blocker strong { display: block; margin-top: 5px; font-size: 11px; }
.launch-review-blocker p { margin: 5px 0 0; color: #78655f; font-size: 9px; line-height: 1.6; }
.launch-review-group { margin-top: 18px; }
.launch-review-group-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 9px;
}
.launch-review-group-head h3 { margin: 0; font-family: "Songti SC", serif; font-size: 20px; }
.launch-review-group-head span { color: #8e857c; font-size: 9px; }
.launch-review-list { display: grid; gap: 10px; }
.launch-review-item {
  padding: 16px;
  border: 1px solid #e4ded6;
  border-left: 4px solid #aeb4bb;
  border-radius: 12px;
  background: #fff;
}
.launch-review-item.blocked { border-left-color: #b95c51; background: #fffaf8; }
.launch-review-item-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 15px;
}
.launch-review-item-head > div { display: flex; align-items: center; gap: 9px; }
.launch-review-item-head strong { font-size: 13px; }
.launch-review-item > p {
  margin: 10px 0 0;
  color: #625b54;
  font-size: 10px;
  line-height: 1.7;
}
.launch-review-action {
  margin-top: 9px;
  padding: 9px 11px;
  border-radius: 8px;
  background: #f7f5f1;
  color: #6e665f;
  font-size: 10px;
  line-height: 1.6;
}
.launch-review-action span {
  margin-right: 8px;
  color: #9b714a;
  font-size: 8px;
  font-weight: 700;
}
.launch-review-form-grid {
  display: grid;
  grid-template-columns: 140px minmax(140px,.55fr) minmax(230px,1fr);
  gap: 10px;
  margin-top: 12px;
}
.launch-review-form-grid label {
  display: grid;
  gap: 6px;
  color: #7b736b;
  font-size: 9px;
}
.launch-review-form-grid .wide { grid-column: span 2; }
.launch-review-form-grid input,
.launch-review-form-grid select,
.launch-review-form-grid textarea {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid #ddd7d0;
  border-radius: 8px;
  background: #fff;
  font-size: 10px;
}
.launch-review-form-grid textarea { min-height: 62px; resize: vertical; }
.launch-review-item-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
}
.launch-review-item-foot a { color: #38679c; font-size: 9px; text-decoration: none; }
.launch-review-item-foot button {
  min-width: 96px;
  height: 34px;
  border: 0;
  border-radius: 8px;
  background: #3f4959;
  color: #fff;
  font-size: 10px;
}
.service-document-upload-grid {
  display: grid;
  grid-template-columns: minmax(240px,.75fr) minmax(320px,1.25fr) minmax(210px,.75fr);
  gap: 14px;
}
.service-document-drop {
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  min-height: 230px;
  padding: 20px;
  border: 2px dashed #d9c8b5;
  border-radius: 15px;
  background: #fcf8f2;
  color: #7e6c5b;
  text-align: center;
  cursor: pointer;
}
.service-document-drop input { display: none; }
.service-document-drop > span {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: #2d65c5;
  color: #fff;
  font-family: "Songti SC", serif;
  font-size: 27px;
}
.service-document-drop strong { font-size: 13px; }
.service-document-drop small { color: #998e82; font-size: 10px; line-height: 1.5; }
.service-document-upload-grid form {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid #e5ddd4;
  border-radius: 14px;
  background: #fbfaf8;
}
.service-document-upload-grid textarea {
  min-height: 140px;
  padding: 10px;
  border: 1px solid #d8d5d0;
  border-radius: 9px;
  resize: vertical;
}
.service-document-upload-grid form button {
  height: 38px;
  border: 0;
  border-radius: 8px;
  background: #2d65c5;
  color: #fff;
}
.service-document-history { display: grid; align-content: start; gap: 7px; }
.service-document-history > strong { font-size: 12px; }
.service-document-history-item {
  display: grid;
  gap: 4px;
  padding: 10px;
  border: 1px solid #e7e1da;
  border-radius: 9px;
  background: #fff;
  color: #403b36;
  text-align: left;
}
.service-document-history-item span { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.service-document-history-item small { color: #999087; font-size: 8px; }
.service-document-result { margin-top: 16px; padding: 22px; border: 1px solid #e4dcd2; border-radius: 16px; background: #fff; }
.service-document-result section { margin-top: 16px; padding-top: 14px; border-top: 1px solid #eee9e3; }
.service-document-result h3 { margin: 0 0 9px; font-size: 13px; }
.service-document-result p,
.service-document-result li { color: #5f574f; font-size: 11px; line-height: 1.7; }
.service-document-result ul { margin: 0; padding-left: 18px; }
.service-analysis-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.service-analysis-tags span { padding: 5px 9px; border-radius: 999px; background: #edf2fa; color: #426a9f; font-size: 9px; }
.service-knowledge-suggestion { margin-top: 8px; padding: 11px; border-radius: 9px; background: #f8f5f0; }
.service-knowledge-suggestion strong { font-size: 11px; }
.service-knowledge-suggestion p { margin: 5px 0 0; font-size: 10px; }
.campaign-center-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}
.campaign-center-head h2 { margin: 7px 0 0; font-family: "Songti SC", serif; font-size: 30px; }
.campaign-center-head p { margin: 7px 0 0; color: #827b73; font-size: 11px; }
.marketing-module-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 18px;
  padding: 6px;
  border: 1px solid #e2d9cf;
  border-radius: 16px;
  background: #eee7df;
}
.marketing-module-tabs button {
  min-height: 52px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #746960;
  font-weight: 600;
}
.marketing-module-tabs button span { margin-right: 8px; color: #ad8058; font-size: 10px; letter-spacing: .1em; }
.marketing-module-tabs button.active { background: #fff; color: #241f1a; box-shadow: 0 6px 18px rgba(60,42,28,.08); }
.onboarding-marketing-head { margin-top: 8px; }
.onboarding-store-switch { display: flex; align-items: center; gap: 18px; padding: 16px 20px; }
.onboarding-store-switch label { display: flex; align-items: center; gap: 12px; margin: 0; }
.onboarding-store-switch select { width: min(480px, 60vw); }
.onboarding-marketing-stats {
  display: grid;
  grid-template-columns: repeat(5, minmax(0,1fr));
  gap: 12px;
  margin-top: 18px;
}
.onboarding-marketing-stats > div { padding: 20px; border: 1px solid #e1d6ca; border-radius: 18px; background: #fff; }
.onboarding-marketing-stats small { display: block; color: #8d8278; }
.onboarding-marketing-stats strong { display: block; margin-top: 10px; font: 600 22px "Songti SC", serif; }
.onboarding-campaign-layout { display: grid; grid-template-columns: minmax(390px,.75fr) minmax(520px,1.25fr); gap: 18px; margin-top: 18px; }
.onboarding-campaign-builder { min-width: 0; }
.onboarding-campaign-builder > .panel { margin-top: 18px; }
.onboarding-campaign-builder > .panel:first-child { margin-top: 0; }
.onboarding-h5-builder { margin-top: 0; }
.onboarding-poster-mini-preview {
  position: relative;
  overflow: hidden;
  min-height: 390px;
  padding: 34px;
  border-radius: 20px;
  background: radial-gradient(circle at 10% 100%, rgba(196,137,82,.35), transparent 42%), linear-gradient(135deg,#211c20,#4a392e 68%,#ad7447);
  color: #fff;
}
.onboarding-poster-mini-preview > div { position: relative; z-index: 1; max-width: 62%; }
.onboarding-poster-mini-preview span { color: #dfb486; font-size: 9px; font-weight: 650; letter-spacing: .14em; }
.onboarding-poster-mini-preview h3 { margin: 45px 0 13px; font: 600 37px/1.18 "Songti SC", serif; }
.onboarding-poster-mini-preview p { color: rgba(255,255,255,.62); font-size: 11px; line-height: 1.6; }
.onboarding-poster-mini-preview strong { display: block; margin-top: 72px; color: #e8c29b; font-size: 12px; }
.poster-entry-qr { position: absolute; z-index: 1; right: 118px; bottom: 28px; width: 128px; height: 128px; padding: 8px; border-radius: 12px; background: #fff; }
.poster-wechat-qr { position: absolute; z-index: 1; right: 22px; bottom: 28px; width: 82px; height: 82px; padding: 5px; border-radius: 9px; background: #fff; }
.poster-wechat-placeholder { position: absolute; right: 22px; bottom: 28px; display: grid; width: 82px; height: 82px; place-items: center; border: 1px dashed rgba(255,255,255,.35); border-radius: 9px; color: rgba(255,255,255,.55); font-size: 9px; text-align: center; }
.store-share-qr-form { margin-top: 16px; }
.store-share-qr-form .image-upload-field { margin-bottom: 12px; }
.onboarding-plan-options { display: grid; gap: 9px; }
.onboarding-plan-check { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid #e1d8ce; border-radius: 12px; background: #fff; }
.onboarding-plan-check input { margin-top: 3px; }
.onboarding-plan-check span { display: grid; gap: 4px; }
.onboarding-plan-check strong { font-size: 13px; }
.onboarding-plan-check small { color: #877c72; font-size: 10px; line-height: 1.55; }
.onboarding-h5-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(260px,.65fr); gap: 18px; align-items: start; }
.h5-layout-editor { margin-bottom: 16px; padding: 15px; border: 1px solid #e2d8ce; border-radius: 15px; background: #faf7f2; }
.h5-layout-editor > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.h5-layout-editor small { color: #94887d; }
.h5-layout-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-top: 11px; }
.h5-layout-list > div { display: grid; grid-template-columns: 20px 1fr; gap: 2px 7px; padding: 10px; border: 1px solid #ded4c9; border-radius: 11px; background: #fff; cursor: grab; }
.h5-layout-list > div.dragging { opacity: .45; border-style: dashed; }
.h5-layout-list span { grid-row: span 2; color: #ad8a69; letter-spacing: -3px; }
.h5-layout-list strong { font-size: 11px; }
.h5-layout-list small { font-size: 8px; }
.onboarding-h5-form .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.onboarding-h5-form textarea { min-height: 72px; }
.onboarding-h5-uploads { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.onboarding-h5-preview {
  position: sticky;
  top: 20px;
  overflow: hidden;
  min-height: 560px;
  border: 8px solid #272127;
  border-radius: 28px;
  background: #f7f3ed;
  box-shadow: 0 24px 60px rgba(48,35,25,.15);
}
.onboarding-h5-preview-bar { display: flex; gap: 4px; padding: 10px 12px; background: #272127; }
.onboarding-h5-preview-bar span { width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.45); }
.onboarding-h5-preview > img { width: 100%; height: 160px; object-fit: cover; }
.onboarding-h5-preview-copy { padding: 24px 20px; }
.onboarding-h5-preview-copy small { color: #b27d50; font-size: 8px; letter-spacing: .13em; }
.onboarding-h5-preview-copy h3 { margin: 16px 0 9px; white-space: pre-line; font: 600 30px/1.2 "Songti SC", serif; }
.onboarding-h5-preview-copy p { color: #7c7167; font-size: 10px; line-height: 1.65; }
.onboarding-h5-wechat-preview { width: 80px; height: 80px; margin-top: 14px; border-radius: 8px; }
.onboarding-contact-qr { position: absolute; z-index: 2; right: 38px; bottom: 36px; display: grid; justify-items: center; gap: 4px; padding: 8px; border-radius: 12px; background: #fff; color: #4b3d31; font-size: 8px; }
.onboarding-contact-qr img { width: 105px; height: 105px; border-radius: 8px; }
.finance-head-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 28px;
  margin: 24px 0 16px;
}
.finance-head-row h2 { margin: 9px 0; font: 600 34px "Songti SC", serif; }
.finance-head-row p { max-width: 740px; margin: 0; color: #7e746b; font-size: 12px; line-height: 1.65; }
.finance-account-chip { min-width: 230px; padding: 16px 18px; border: 1px solid #ded2c5; border-radius: 16px; background: #fffdf9; }
.finance-account-chip small,
.finance-account-chip span { display: block; color: #92877d; font-size: 10px; }
.finance-account-chip strong { display: block; margin: 7px 0 4px; font-size: 14px; }
.finance-subnav {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  padding: 5px;
  border: 1px solid #ded5cb;
  border-radius: 15px;
  background: #eee7de;
}
.finance-subnav button {
  flex: 1 0 auto;
  min-height: 44px;
  padding: 0 15px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #746a61;
  font-size: 12px;
  font-weight: 600;
}
.finance-subnav button.active { background: #fff; color: #24201b; box-shadow: 0 5px 14px rgba(60,43,29,.08); }
.finance-period-toolbar {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin-top: 12px;
  padding: 13px;
  border: 1px solid #e1d8ce;
  border-radius: 14px;
  background: #fbf8f3;
}
.finance-period-toolbar label { display: grid; gap: 5px; color: #85796f; font-size: 10px; }
.finance-period-toolbar input { height: 36px; }
.finance-period-toolbar .data-meta { margin-left: auto; padding-bottom: 9px; }
.finance-account-hero { display: grid; grid-template-columns: 1.35fr .65fr .95fr; gap: 14px; margin-top: 18px; }
.finance-balance-card { padding: 28px; border-radius: 22px; background: linear-gradient(135deg,#378af5,#4f9af7); color: #fff; box-shadow: 0 18px 45px rgba(47,118,219,.22); }
.finance-balance-card > span { color: rgba(255,255,255,.72); font-size: 12px; }
.finance-balance-card > strong { display: block; margin: 16px 0 7px; font: 600 44px "Songti SC", serif; }
.finance-balance-card > small { color: rgba(255,255,255,.7); }
.finance-balance-card .inline-actions { margin-top: 24px; }
.finance-balance-card .save { background: #fff; color: #2d73cf; }
.finance-balance-card .secondary { border-color: rgba(255,255,255,.4); background: rgba(255,255,255,.1); color: #fff; }
.finance-mini-card { display: grid; align-content: center; padding: 24px; border: 1px solid #dee1e7; border-radius: 22px; background: linear-gradient(145deg,#f8fbff,#eef4fc); }
.finance-mini-card small { color: #7c8797; }
.finance-mini-card strong { margin: 15px 0 8px; font: 600 30px "Songti SC", serif; color: #346fae; }
.finance-mini-card span { color: #8a96a3; font-size: 10px; line-height: 1.5; }
.finance-rule-card { padding: 22px; border: 1px solid #e0d7cd; border-radius: 22px; background: #fff; }
.finance-rule-card > div { display: flex; justify-content: space-between; align-items: center; }
.finance-rule-card dl { display: grid; grid-template-columns: 78px 1fr; gap: 11px; margin: 18px 0 0; font-size: 11px; }
.finance-rule-card dt { color: #978c82; }
.finance-rule-card dd { margin: 0; color: #4b423b; text-align: right; }
.finance-summary-grid { grid-template-columns: repeat(6,minmax(0,1fr)); margin-top: 14px; }
.finance-summary-grid .stat-card strong { font-size: 24px; }
.finance-subtabs { display: flex; gap: 6px; margin-bottom: 16px; }
.finance-subtabs button { padding: 9px 15px; border: 1px solid #e1d8d0; border-radius: 999px; background: #fff; color: #776c62; font-size: 11px; }
.finance-subtabs button.active { border-color: #2d2925; background: #2d2925; color: #fff; }
.finance-campus-filter { display: grid; grid-template-columns: minmax(220px,1.3fr) repeat(3,minmax(100px,.6fr)) auto; gap: 10px; align-items: end; margin-bottom: 16px; padding: 13px; border-radius: 13px; background: #f8f4ee; }
.finance-settings-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.finance-detail-modal { width: min(680px,94vw); }
.finance-detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.finance-detail-grid > div { padding: 14px; border: 1px solid #e3dcd4; border-radius: 12px; background: #faf8f5; }
.finance-detail-grid small { display: block; color: #93887e; font-size: 10px; }
.finance-detail-grid strong { display: block; margin-top: 7px; font-size: 13px; }
.finance-detail-orders { margin-top: 16px; }
.finance-quick-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.finance-quick-grid button { display: grid; gap: 8px; padding: 20px; border: 1px solid #e0d6ca; border-radius: 18px; background: linear-gradient(145deg,#fff,#f9f3eb); color: #2b2420; text-align: left; cursor: pointer; }
.finance-quick-grid button strong { font-size: 14px; }
.finance-quick-grid button span { color: #8b8077; font-size: 10px; line-height: 1.55; }
.finance-fact-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.finance-fact-grid > div { padding: 20px; border: 1px solid #e2d8ce; border-radius: 16px; background: #fbf9f5; }
.finance-fact-grid small,
.finance-fact-grid span { display: block; color: #8c8177; font-size: 10px; line-height: 1.5; }
.finance-fact-grid strong { display: block; margin: 10px 0 7px; font: 600 22px "Songti SC", serif; }
.finance-empty-account { display: grid; justify-items: center; padding: 52px 20px; border: 1px dashed #d8cbbb; border-radius: 18px; background: #fbf8f3; text-align: center; }
.finance-empty-account strong { font: 600 44px "Songti SC", serif; }
.finance-empty-account span { margin-top: 6px; color: #8e8378; font-size: 12px; }
.finance-empty-account p { max-width: 620px; color: #a09489; font-size: 11px; line-height: 1.65; }
.campaign-review-warning {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 14px 0;
  padding: 12px 14px;
  border: 1px solid #e6c8c2;
  border-radius: 10px;
  background: #fff7f5;
  color: #71453f;
  font-size: 10px;
}
.campaign-review-warning strong { flex: 0 0 auto; font-size: 11px; }
.campaign-review-warning span { flex: 1; line-height: 1.6; }
.campaign-review-warning button {
  min-height: 32px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: #984e45;
  color: #fff;
  font-size: 9px;
}
.campaign-stats { grid-template-columns: repeat(6,minmax(0,1fr)); }
.campaign-template-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 12px;
}
.campaign-template-card {
  padding: 18px;
  border: 1px solid #e1d7ca;
  border-radius: 16px;
  background: linear-gradient(145deg,#fff,var(--campaign-bg));
}
.campaign-template-card.review-risk { border-color: #e5c8c1; background: #fffaf8; }
.campaign-template-type { color: var(--campaign-accent); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.campaign-template-card h3 { margin: 9px 0 0; font-family: "Songti SC", serif; font-size: 21px; }
.campaign-template-card > p { min-height: 38px; margin: 8px 0 0; color: #6e655c; font-size: 11px; line-height: 1.6; }
.campaign-template-reward { margin-top: 12px; padding: 8px 10px; border-radius: 8px; background: rgba(255,255,255,.7); color: var(--campaign-accent); font-size: 11px; font-weight: 600; }
.campaign-template-card details { margin-top: 10px; color: #766d64; font-size: 9px; }
.campaign-template-card summary { cursor: pointer; }
.campaign-template-card ol { padding-left: 17px; line-height: 1.6; }
.campaign-template-card details small { display: block; margin-top: 5px; color: #8f867d; line-height: 1.5; }
.campaign-template-card > button {
  width: 100%;
  height: 36px;
  margin-top: 12px;
  border: 0;
  border-radius: 8px;
  background: var(--campaign-accent);
  color: #fff;
  font-size: 10px;
}
.campaign-open-note { margin-top: 14px; padding: 11px 13px; border-radius: 9px; background: #fbf7f0; color: #7f705f; font-size: 9px; line-height: 1.6; }
.campaign-table { min-width: 1120px; }
.campaign-row-actions { min-width: 190px; white-space: nowrap; }
.campaign-row-actions button { margin-right: 7px; padding: 4px 7px; border: 0; border-radius: 6px; background: #f2f4f7; color: #426894; font-size: 9px; }
.campaign-editor-drawer { width: min(900px,97vw); }
.campaign-editor-form section { margin: 12px 22px 0; padding: 18px; border: 1px solid #e5dfd8; border-radius: 13px; background: #fff; }
.campaign-editor-form section h3 { margin: 0 0 13px; font-size: 14px; }
.campaign-editor-form textarea { min-height: 88px; }

/* Campaign workflow studio */
.campaign-editor-drawer {
  top: 2cm;
  right: auto;
  bottom: auto;
  left: 50%;
  width: min(1280px, 96vw);
  height: calc(100vh - 4cm);
  max-height: calc(100vh - 4cm);
  border: 1px solid #ddd3c8;
  border-radius: 16px;
  background: #f4f1ec;
  box-shadow: 0 28px 90px rgba(41, 31, 23, .22);
  transform: translateX(-50%);
}
.campaign-workflow { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; padding: 16px 22px; border-bottom: 1px solid #e4ddd5; background: #fffdf9; }
.campaign-workflow-step { display: flex; align-items: center; gap: 7px; min-width: 0; color: #93877c; font-size: 10px; }
.campaign-workflow-step i { display: flex; width: 23px; height: 23px; align-items: center; justify-content: center; flex: 0 0 23px; border: 1px solid #d9cec2; border-radius: 50%; font-style: normal; }
.campaign-workflow-step.done i { border-color: #2d4139; background: #e9f0eb; color: #2d4139; }
.campaign-workflow-step.current { color: #2f2822; font-weight: 600; }
.campaign-workflow-step.current i { border-color: #2d4139; background: #2d4139; color: #fff; }
.campaign-editor-layout { flex: 1; min-height: 0; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(350px,.75fr); }
.campaign-editor-layout .campaign-editor-form { min-height: 0; overflow-y: auto; }
.campaign-builder-preview { min-height: 0; overflow-y: auto; padding: 20px; border-left: 1px solid #e5ded6; background: #eee8df; }
.campaign-preview-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; color: #443a31; }
.campaign-preview-head small { display: block; color: #a87950; font-size: 9px; letter-spacing: .16em; }
.campaign-preview-head strong { display: block; margin-top: 5px; font: 600 22px "Songti SC", serif; }
.campaign-preview-head span { padding: 5px 9px; border-radius: 999px; background: #fffaf3; color: #7c5b3e; font-size: 10px; }
.campaign-preview-phone { width: 100%; max-width: 390px; margin: 16px auto 0; padding: 18px; border: 7px solid #2c2825; border-radius: 34px; background: var(--campaign-bg); color: var(--campaign-color); box-shadow: 0 20px 45px rgba(48,35,25,.16); }
.campaign-preview-block { margin-bottom: 10px; padding: 16px; border: 1px solid rgba(80,60,42,.11); border-radius: 16px; background: rgba(255,253,249,.88); cursor: grab; }
.campaign-preview-block:active { cursor: grabbing; }
.campaign-preview-block.dragging { opacity: .5; outline: 2px dashed var(--campaign-accent); }
.campaign-preview-block small { color: var(--campaign-accent); font-size: 8px; letter-spacing: .14em; text-transform: uppercase; }
.campaign-preview-block h3 { margin: 10px 0 0; font: 600 30px/1.18 "Songti SC", serif; }
.campaign-preview-block h4 { margin: 8px 0 0; font: 600 18px "Songti SC", serif; }
.campaign-preview-block p { margin: 8px 0 0; color: color-mix(in srgb, var(--campaign-color) 67%, white); font-size: 11px; line-height: 1.7; }
.campaign-preview-block.hero { min-height: 220px; padding: 20px; background: linear-gradient(150deg, rgba(255,255,255,.8), color-mix(in srgb, var(--campaign-accent) 34%, white)); }
.campaign-preview-hero-image { width: 100%; height: 135px; object-fit: cover; margin-bottom: 14px; border-radius: 11px; }
.campaign-preview-block.hero span { display: inline-flex; margin-top: 24px; padding: 11px 18px; border-radius: 999px; background: var(--campaign-accent); color: #fff; font-size: 11px; }
.campaign-preview-steps { margin: 10px 0 0; padding-left: 18px; color: #75685d; font-size: 10px; line-height: 1.8; }
.campaign-preview-input { height: 34px; margin-top: 8px; padding: 0 11px; border: 1px solid #ddd3c7; border-radius: 9px; background: #fff; color: #a29990; font-size: 10px; line-height: 34px; }
.campaign-preview-submit { height: 38px; margin-top: 10px; border-radius: 9px; background: var(--campaign-accent); color: #fff; font-size: 11px; line-height: 38px; text-align: center; }
.campaign-drag-tip { margin: 14px auto 0; max-width: 390px; color: #8f8378; font-size: 10px; line-height: 1.6; text-align: center; }
.campaign-workflow-next { width: 100%; height: 44px; margin-top: 14px; border: 0; border-radius: 10px; background: #2d4139; color: #fff; }
.campaign-published-note { margin-top: 14px; padding: 13px; border-radius: 10px; background: #e7f0e9; color: #3e6650; font-size: 11px; text-align: center; }
.campaign-preview-block[data-campaign-preview-section] {
  margin-left: auto;
  margin-right: auto;
  overflow: hidden;
  background-size: cover;
  background-position: center;
}
.campaign-template-card.diy-template {
  border-color: #8b664a;
  background:
    linear-gradient(145deg, rgba(255,253,249,.92), rgba(239,226,211,.9)),
    var(--campaign-bg);
  box-shadow: 0 18px 40px rgba(87, 58, 37, .12);
}
.campaign-template-card.diy-template .campaign-template-type {
  color: #7f5436;
}
.campaign-platforms-modal {
  width: min(860px, 94vw);
}
.campaign-platform-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
  margin-top: 18px;
}
.campaign-platform-grid a {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border: 1px solid #e3dad0;
  border-radius: 10px;
  background: #fcfaf6;
  color: #352d27;
  text-decoration: none;
}
.campaign-platform-grid a > span {
  color: #b18155;
  font-family: Georgia, serif;
  font-size: 17px;
}
.campaign-platform-grid strong,
.campaign-platform-grid small { display: block; }
.campaign-platform-grid strong { font-size: 13px; font-weight: 500; }
.campaign-platform-grid small { margin-top: 5px; color: #94897f; font-size: 9px; line-height: 1.5; }
.campaign-platform-grid em { color: #9b6c47; font-size: 9px; font-style: normal; white-space: nowrap; }
.campaign-platform-note {
  margin-top: 16px;
  padding: 13px 15px;
  border-radius: 9px;
  background: #f4eee6;
  color: #776b60;
  font-size: 10px;
  line-height: 1.7;
}
.campaign-module-config {
  margin-top: 10px;
  overflow: hidden;
  border: 1px solid #ded6cc;
  border-radius: 10px;
  background: #fbf9f5;
}
.campaign-module-config summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 15px;
  cursor: pointer;
  list-style: none;
}
.campaign-module-config summary::-webkit-details-marker { display: none; }
.campaign-module-config summary span { color: #3f352d; font-size: 12px; font-weight: 600; }
.campaign-module-config summary small { color: #9a8e82; font-size: 9px; }
.campaign-module-config[open] summary { border-bottom: 1px solid #e9e1d8; background: #f5f1eb; }
.campaign-module-config .form-grid { padding: 14px; }
.campaign-scope-tools { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.campaign-scope-tools input { flex: 1; height: 38px; padding: 0 11px; border: 1px solid #ded6ce; border-radius: 8px; }
.campaign-scope-tools span { flex: 0 0 auto; color: #8d8176; font-size: 10px; }
.campaign-scope-tools b { color: #8d5e37; }
.campaign-scope-store-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); max-height: 250px; margin-top: 8px; overflow-y: auto; border: 1px solid #e3dcd4; border-radius: 10px; background: #faf8f4; }
.campaign-scope-store-list label { display: flex; align-items: flex-start; gap: 7px; padding: 9px; border-bottom: 1px solid #eee8e1; }
.campaign-scope-store-list label.hidden { display: none; }
.campaign-scope-store-list span { min-width: 0; }
.campaign-scope-store-list strong { display: block; overflow: hidden; font-size: 10px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.campaign-scope-store-list small { display: block; margin-top: 3px; color: #978c81; font-size: 9px; }
.campaign-scope-empty { grid-column: 1 / -1; padding: 30px 12px; color: #9b9187; font-size: 11px; text-align: center; }
.announcement-region-fields,
.announcement-store-picker {
  padding: 16px;
  border: 1px solid #e4dbd0;
  border-radius: 10px;
  background: #fbf8f3;
}
.announcement-region-fields .form-grid { margin: 0; }
.announcement-store-tools {
  display: flex;
  align-items: center;
  gap: 12px;
}
.announcement-store-tools input {
  height: 38px;
  flex: 1;
  padding: 0 12px;
  border: 1px solid #dcd3c8;
  border-radius: 7px;
  background: #fffdf9;
}
.announcement-store-tools span {
  color: #8a7f74;
  font-size: 10px;
  white-space: nowrap;
}
.announcement-store-tools b { color: #9c6c45; }
.announcement-batch-import {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  gap: 10px;
  margin-top: 10px;
}
.announcement-batch-import .upload-label {
  display: flex;
  min-height: 74px;
  align-items: center;
  justify-content: center;
  padding: 12px;
  border: 1px dashed #cfc2b5;
  border-radius: 8px;
  color: #785d46;
  text-align: center;
}
.announcement-batch-import .upload-label input { display: none; }
.announcement-batch-import label {
  margin: 0;
  color: #7d7268;
  font-size: 9px;
}
.announcement-batch-import textarea {
  min-height: 74px;
  margin-top: 5px;
  padding: 9px 11px;
  border: 1px solid #dcd3c8;
  border-radius: 7px;
  background: #fffdf9;
  font-family: ui-monospace, monospace;
}
.announcement-store-list {
  max-height: 330px;
  margin-top: 10px;
}

/* Course product publisher */
.course-product-drawer { width: min(1240px, 98vw); }
.goods-product-modal {
  top: 2cm;
  bottom: auto;
  width: min(1240px, 96vw);
  height: auto;
  max-height: calc(100vh - 4cm);
  padding: 0;
  border-radius: 16px;
  transform: translateX(-50%);
  overflow: hidden;
}
.goods-product-modal .course-drawer-head {
  padding: 20px 24px 16px;
}
.goods-product-modal .course-product-layout {
  min-height: 640px;
  max-height: calc(100vh - 4cm - 110px);
}
.course-drawer {
  inset: 2cm 0 auto auto;
  height: calc(100vh - 2cm);
  max-height: calc(100vh - 2cm);
  border-radius: 16px 0 0 0;
}
.course-modal {
  top: 2cm;
  bottom: auto;
  height: auto;
  max-height: calc(100vh - 4cm);
  border-radius: 14px;
}
.academic-editor-modal,
.store-field-modal {
  top: 2cm;
}
.course-drawer-backdrop,
.course-modal-backdrop {
  backdrop-filter: blur(3px);
}
.goods-product-modal .course-product-steps {
  padding-top: 16px;
}
.goods-product-modal .course-product-step {
  margin: 16px 22px;
}
.wechat-location-entry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 14px;
  align-items: center;
  margin: 12px 0;
  padding: 12px;
  border: 1px solid #DCE7DE;
  border-radius: 10px;
  background: #F3F8F4;
}
.wechat-location-entry strong { color: #385747; font-size: 11px; }
.wechat-location-entry span { grid-row: 2; color: #73847A; font-size: 10px; line-height: 1.5; }
.wechat-location-entry button { grid-column: 2; grid-row: 1 / span 2; }
.role-entry-generator { margin-bottom: 18px; }
.role-entry-result {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 132px auto;
  align-items: center;
  gap: 16px;
  margin: 15px 0;
  padding: 14px;
  border: 1px solid #DDE7DE;
  border-radius: 12px;
  background: #F4F8F5;
}
.role-entry-result-copy strong,
.role-entry-result-copy span,
.role-entry-result-copy small { display: block; }
.role-entry-result-copy strong { color: #314A3D; font-size: 13px; }
.role-entry-result-copy span {
  margin-top: 5px;
  overflow-wrap: anywhere;
  color: #6C7D72;
  font: 10px/1.5 monospace;
}
.role-entry-result-copy small { margin-top: 6px; color: #8B7E72; font-size: 10px; line-height: 1.5; }
.role-entry-result img { width: 132px; height: 132px; border-radius: 8px; background: #fff; }
.role-entry-token-table { max-height: 300px; overflow-y: auto; }
.role-entry-qr-modal { width: min(500px, 92vw); }
.role-entry-qr-body { display: grid; justify-items: center; gap: 12px; text-align: center; }
.role-entry-qr-body img { width: min(320px, 76vw); height: auto; border: 1px solid #E5DDD4; border-radius: 12px; background: #fff; }
.role-entry-qr-body p { margin: 0; color: #84796F; font-size: 11px; line-height: 1.6; }
.role-entry-path { display: grid; gap: 7px; margin-top: 14px; color: #71665C; font-size: 11px; }
.role-entry-path input { height: 38px; padding: 0 10px; border: 1px solid #E3D8CC; border-radius: 8px; background: #FFFDFC; font-size: 10px; }
.role-entry-code {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid #E5D9CD;
  border-radius: 10px;
  background: #FBF6F0;
  color: #7A685A;
  font-size: 11px;
}
.role-entry-code strong {
  margin-left: 10px;
  color: #352C26;
  font: 600 22px ui-monospace, monospace;
  letter-spacing: .08em;
}
.role-entry-code small { display: block; margin-top: 7px; color: #9B8E83; font-size: 9px; }
.reset-filter-button,
button.reset-filter-button,
.course-reset-button.reset-filter-button {
  display: inline-flex;
  width: auto;
  flex: 0 0 auto;
  min-width: 72px;
  height: 36px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid #D8CEC3;
  border-radius: 8px;
  background: transparent;
  color: #776A5F;
  font-size: 11px;
  font-weight: 400;
  line-height: 1;
  white-space: nowrap;
  word-break: keep-all;
  writing-mode: horizontal-tb;
}
.reset-filter-button:hover {
  border-color: #B8A696;
  background: #F7F2EC;
  color: #493D34;
}
.transaction-filter-actions,
.team-filter-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.lead-center-table td { vertical-align: middle; }
.lead-center-table th { white-space: nowrap; }
.lead-product-type { display: grid; justify-items: start; gap: 7px; }
.lead-product-type button {
  padding: 0;
  border: 0;
  background: transparent;
  color: #8D5F3E;
  font-size: 10px;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.lead-center-detail-modal { width: min(860px, 94vw); }
.lead-center-detail-body { max-height: min(68vh, 720px); overflow-y: auto; padding: 2px 4px 10px; }
.lead-center-detail-summary {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.lead-center-detail-summary > span {
  padding: 12px;
  border-radius: 10px;
  background: #F7F2EC;
  color: #93877C;
  font-size: 10px;
}
.lead-center-detail-summary strong { display: block; margin-top: 5px; color: #3F352D; font-size: 13px; }
.lead-order-history { display: grid; gap: 10px; }
.lead-order-card {
  display: grid;
  grid-template-columns: minmax(220px,1.5fr) repeat(4,minmax(100px,.72fr));
  gap: 10px;
  padding: 14px;
  border: 1px solid #E7DED5;
  border-radius: 12px;
  background: #FFFDFC;
}
.lead-order-card small,
.lead-order-card strong,
.lead-order-card span { display: block; }
.lead-order-card small { color: #A3988E; font-size: 9px; }
.lead-order-card > div:first-child strong { margin-top: 5px; font-size: 13px; }
.lead-order-card span { color: #A0968D; font-size: 9px; }
.lead-order-card > div:not(:first-child) strong { margin-top: 5px; color: #4C4138; font-size: 11px; }
.lead-empty-history { padding: 22px; border-radius: 11px; background: #F8F4EF; color: #8C8177; font-size: 11px; text-align: center; }
.lead-history-title { margin: 20px 0 10px; color: #3F352D; font-size: 13px; font-weight: 600; }
.lead-history-list { display: grid; gap: 2px; }
.lead-history-item { display: grid; grid-template-columns: 12px minmax(0,1fr); gap: 10px; padding: 10px 0; }
.lead-history-item i { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: #A67A57; }
.lead-history-item strong,
.lead-history-item small { display: block; }
.lead-history-item strong { color: #55493F; font-size: 11px; font-weight: 500; line-height: 1.55; }
.lead-history-item small { margin-top: 5px; color: #9B9086; font-size: 9px; }
.verify-command-card {
  display: grid;
  grid-template-columns: minmax(340px,1.05fr) minmax(420px,1fr);
  gap: 20px;
  align-items: start;
  margin-bottom: 18px;
  padding: 26px 28px;
  border-radius: 16px;
  background: linear-gradient(135deg,#222824,#49392F 64%,#9B6945);
  color: #FFF9F2;
  box-shadow: 0 18px 38px rgba(35,29,25,.14);
}
.verify-command-copy span { color: #E0B88E; font-size: 10px; letter-spacing: .16em; }
.verify-command-copy h2 { margin: 7px 0 0; font: 500 24px "Songti SC",serif; }
.verify-command-copy p { margin: 8px 0 0; color: rgba(255,255,255,.62); font-size: 11px; line-height: 1.6; }
.verify-core-metrics {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 8px;
  margin-top: 18px;
}
.verify-core-metrics > div {
  min-height: 68px;
  padding: 12px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 9px;
  background: rgba(255,255,255,.065);
}
.verify-core-metrics > div.attention {
  border-color: rgba(237,183,117,.58);
  background: rgba(165,92,48,.24);
}
.verify-core-metrics small,
.verify-core-metrics strong,
.verify-core-metrics span { display: block; }
.verify-core-metrics small { color: rgba(255,255,255,.48); font-size: 9px; }
.verify-core-metrics strong { margin-top: 7px; font-family: Georgia, serif; font-size: 22px; font-weight: 400; }
.verify-core-metrics span { margin-top: 2px; color: rgba(255,255,255,.4); font-size: 8px; }
.verify-command-side { display: grid; gap: 12px; }
.verify-command-actions { display: flex; gap: 8px; align-items: center; justify-content: flex-end; }
.verify-command-actions input {
  min-width: 180px;
  height: 42px;
  flex: 1;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 9px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font: 500 17px ui-monospace, monospace;
}
.verify-command-actions input::placeholder { color: rgba(255,255,255,.42); font: 11px "PingFang SC"; }
.verify-primary,
.verify-upload {
  display: inline-flex;
  height: 42px;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: #FFF8EF;
  color: #3B3029;
  font-size: 11px;
  white-space: nowrap;
}
.verify-upload input { display: none; }
.verify-upload.dragging {
  outline: 2px dashed #fff0d9;
  outline-offset: 3px;
  background: #e5c197;
  color: #271f1a;
}
.verify-quick-links {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
}
.verify-quick-links button {
  min-height: 30px;
  padding: 0 11px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 6px;
  background: rgba(255,255,255,.04);
  color: rgba(255,255,255,.68);
  font-size: 9px;
}
.verify-quick-links button:hover {
  border-color: rgba(255,255,255,.3);
  background: rgba(255,255,255,.1);
  color: #fff;
}
.verify-command-result { grid-column: 1 / -1; padding: 9px 12px; border-radius: 8px; background: rgba(255,255,255,.1); color: #F7E8D8; font-size: 11px; }
.verify-recent-panel {
  grid-column: 1 / -1;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 10px;
  background: rgba(20,25,22,.22);
}
.verify-recent-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 16px;
  border-bottom: 1px solid rgba(255,255,255,.09);
}
.verify-recent-head span,
.verify-recent-head strong { display: block; }
.verify-recent-head span { color: rgba(226,191,150,.72); font-size: 8px; letter-spacing: .16em; }
.verify-recent-head strong { margin-top: 4px; font: 500 15px "Songti SC",serif; }
.verify-recent-head button {
  border: 0;
  background: transparent;
  color: rgba(255,255,255,.54);
  font-size: 9px;
}
.verify-recent-list { display: grid; }
.verify-recent-row {
  display: grid;
  grid-template-columns: 30px minmax(0,1fr) auto 132px;
  align-items: center;
  gap: 11px;
  padding: 10px 16px;
  border-bottom: 1px solid rgba(255,255,255,.07);
}
.verify-recent-row:last-child { border-bottom: 0; }
.verify-recent-row.revoked { opacity: .56; }
.verify-recent-mark {
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 6px;
  color: #E5C39B;
  font-size: 10px;
}
.verify-recent-row strong,
.verify-recent-row small { display: block; }
.verify-recent-row strong { overflow: hidden; font-size: 10px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.verify-recent-row small { margin-top: 3px; color: rgba(255,255,255,.42); font-size: 8px; }
.verify-recent-row em {
  padding: 4px 7px;
  border-radius: 999px;
  background: rgba(119,162,132,.18);
  color: #C9DECF;
  font-size: 8px;
  font-style: normal;
}
.verify-recent-row.revoked em { background: rgba(185,75,66,.2); color: #E8B8B1; }
.verify-recent-row time { color: rgba(255,255,255,.38); font-size: 8px; text-align: right; }
.verify-recent-empty { padding: 24px 16px; color: rgba(255,255,255,.42); font-size: 9px; text-align: center; }
.verification-confirm-backdrop {
  position: fixed;
  z-index: 220;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(25, 21, 18, .42);
  backdrop-filter: blur(5px);
}
.verification-confirm-modal,
.verification-success-modal {
  width: min(620px, 94vw);
  padding: 30px;
  border: 1px solid #ded4c8;
  border-radius: 16px;
  background: #fffdf9;
  color: #2e2722;
  box-shadow: 0 30px 90px rgba(33, 25, 20, .26);
}
.verification-confirm-kicker {
  color: #a47752;
  font-size: 9px;
  letter-spacing: .18em;
}
.verification-confirm-modal h2,
.verification-success-modal h2 {
  margin: 10px 0 8px;
  font: 500 28px "Songti SC", serif;
}
.verification-confirm-modal > p,
.verification-success-modal > p {
  margin: 0;
  color: #81766d;
  font-size: 11px;
  line-height: 1.7;
}
.verification-confirm-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  margin-top: 20px;
  overflow: hidden;
  border: 1px solid #e8dfd5;
  border-radius: 10px;
  background: #e8dfd5;
}
.verification-confirm-grid > div {
  min-height: 70px;
  padding: 13px 15px;
  background: #fcfaf6;
}
.verification-confirm-grid small,
.verification-confirm-grid strong { display: block; }
.verification-confirm-grid small { color: #9a8e83; font-size: 9px; }
.verification-confirm-grid strong { margin-top: 7px; font-size: 12px; font-weight: 500; line-height: 1.5; }
.verification-confirm-grid .mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }
.verification-confirm-note {
  margin-top: 12px;
  color: #8b7f74;
  font-size: 10px;
}
.verification-confirm-actions {
  display: flex;
  justify-content: flex-end;
  gap: 9px;
  margin-top: 22px;
}
.verification-confirm-actions button,
.verification-success-modal > button {
  min-width: 128px;
  height: 40px;
  border-radius: 8px;
}
.verification-confirm-actions .save,
.verification-success-modal > button {
  background: #2d4139;
  color: #fff;
}
.verification-success-modal {
  width: min(440px, 92vw);
  text-align: center;
}
.verification-success-mark {
  display: grid;
  width: 58px;
  height: 58px;
  margin: 0 auto 16px;
  place-items: center;
  border-radius: 50%;
  background: #e8f2ea;
  color: #3f6e51;
  font-size: 27px;
}
.verification-success-facts {
  display: grid;
  gap: 6px;
  margin: 18px 0 20px;
  padding: 13px;
  border-radius: 9px;
  background: #f5f1ea;
  color: #7c7167;
  font-size: 9px;
}
.verification-success-modal > button { display: inline-flex; align-items: center; justify-content: center; }
.system-settings-backdrop {
  position: fixed;
  z-index: 230;
  inset: 0;
  background: rgba(28, 23, 19, .35);
  backdrop-filter: blur(4px);
}
.system-settings-panel {
  position: absolute;
  top: 2cm;
  right: max(18px, env(safe-area-inset-right));
  width: min(460px, calc(100vw - 36px));
  max-height: calc(100vh - 4cm);
  padding: 26px;
  overflow-y: auto;
  border: 1px solid #ded4c8;
  border-radius: 14px;
  background: #fbf9f5;
  box-shadow: 0 30px 90px rgba(36, 27, 20, .24);
}
.system-settings-panel header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding-bottom: 18px;
  border-bottom: 1px solid #e7dfd5;
}
.system-settings-panel header span { color: #a27b5a; font-size: 8px; letter-spacing: .18em; }
.system-settings-panel header h2 { margin: 8px 0 5px; font: 500 26px "Songti SC", serif; }
.system-settings-panel header p { margin: 0; color: #8c8177; font-size: 10px; }
.system-settings-panel header button { border: 0; background: transparent; color: #8c8177; font-size: 10px; }
.system-settings-panel section { margin-top: 20px; }
.system-settings-panel section h3 { margin: 0 0 10px; color: #4d433a; font-size: 12px; font-weight: 600; }
.system-settings-links { display: grid; gap: 7px; }
.system-settings-links button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 14px;
  border: 1px solid #e5ddd3;
  border-radius: 9px;
  background: #fffdf9;
  color: #3f3730;
  text-align: left;
}
.system-settings-links span,
.system-settings-links strong,
.system-settings-links small { display: block; }
.system-settings-links strong { font-size: 12px; font-weight: 500; }
.system-settings-links small { margin-top: 4px; color: #988d82; font-size: 9px; }
.system-settings-links em { color: #ad8969; font-size: 17px; font-style: normal; }
.system-settings-mobile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid #e7ded4; border-radius: 9px; background: #e7ded4; }
.system-settings-mobile-grid > div { padding: 13px; background: #fffdf9; }
.system-settings-mobile-grid small,
.system-settings-mobile-grid strong { display: block; }
.system-settings-mobile-grid small { color: #998e83; font-size: 9px; }
.system-settings-mobile-grid strong { margin-top: 6px; color: #433a32; font-size: 11px; font-weight: 500; }
.system-settings-role-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.system-settings-role-row button { height: 38px; border: 1px solid #d9d0c6; border-radius: 7px; background: transparent; color: #756a60; }
.system-settings-role-row button.active { border-color: #2b3732; background: #2b3732; color: #fff; }
.system-settings-security { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 18px; border-top: 1px solid #e7dfd5; }
.system-settings-security strong,
.system-settings-security small { display: block; }
.system-settings-security strong { font-size: 11px; }
.system-settings-security small { margin-top: 4px; color: #988d82; font-size: 9px; line-height: 1.5; }
.system-settings-security button { flex: 0 0 auto; height: 34px; padding: 0 13px; border: 1px solid #dfc0b9; border-radius: 7px; background: #fff8f6; color: #a34b40; font-size: 9px; }
.academic-verify-entry {
  display: grid;
  grid-template-columns: minmax(240px,1fr) 180px auto auto;
  align-items: center;
  gap: 9px;
  margin: 14px 0 18px;
  padding: 15px 17px;
  border: 1px solid #E4D5C5;
  border-radius: 13px;
  background: #FFF8EF;
}
.academic-verify-entry > div span { display: block; color: #A35B3C; font-size: 9px; letter-spacing: .12em; }
.academic-verify-entry > div strong { display: block; margin-top: 4px; color: #3B3028; font-size: 13px; }
.academic-verify-entry > div small { display: block; margin-top: 4px; color: #93857A; font-size: 9px; }
.academic-verify-entry input {
  height: 38px;
  padding: 0 11px;
  border: 1px solid #DCCDBE;
  border-radius: 8px;
  background: #fff;
}
.academic-verify-entry button,
.academic-verify-entry label {
  display: inline-flex;
  height: 38px;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 0;
  border-radius: 999px;
  background: #263B33;
  color: #fff;
  font-size: 10px;
  white-space: nowrap;
}
.academic-verify-entry label { border: 1px solid #D6C7B9; background: #fff; color: #6F5F53; }
.academic-verify-entry label input { display: none; }
.manual-verify-order {
  padding: 4px 8px;
  border: 1px solid #D9BEAA;
  border-radius: 999px;
  background: #FFF8F0;
  color: #97603D;
  font-size: 9px;
}
.verification-revoke-panel {
  margin: 12px 0;
  padding: 16px;
  border: 1px solid #E7D9CB;
  border-radius: 14px;
  background: #FFF9F3;
}
.verification-revoke-panel .panel-title { font-size: 13px; }
.course-product-layout { flex: 1; min-height: 0; display: grid; grid-template-columns: 220px minmax(0,1fr); }
.course-product-steps { min-height: 0; overflow-y: auto; padding: 18px 12px; border-right: 1px solid #e4dfd8; background: #f1ede7; }
.course-product-steps button { display: flex; width: 100%; align-items: center; gap: 11px; margin-bottom: 7px; padding: 12px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: #80766d; text-align: left; }
.course-product-steps button:hover { background: rgba(255,255,255,.7); }
.course-product-steps button.active { border-color: #d9d0c5; background: #fffdf9; color: #2f2822; box-shadow: 0 8px 22px rgba(60,42,28,.07); }
.course-product-steps i { display: flex; width: 28px; height: 28px; align-items: center; justify-content: center; flex: 0 0 28px; border-radius: 50%; background: #e2dbd2; color: #75695e; font: normal 9px Georgia,serif; }
.course-product-steps button.active i { background: #2c3f37; color: #fff; }
.course-product-steps span,
.course-product-steps strong,
.course-product-steps small { display: block; }
.course-product-steps strong { font-size: 11px; font-weight: 600; }
.course-product-steps small { margin-top: 3px; color: #9a9087; font-size: 9px; line-height: 1.35; }
.course-product-layout .course-editor-form { min-height: 0; overflow-y: auto; padding-bottom: 68px; background: #f7f8fa; }
.course-product-layout .course-drawer-actions { position: sticky; z-index: 3; bottom: 0; display: flex; flex-wrap: wrap; justify-content: flex-end; background: rgba(255,255,255,.98); }
.course-product-layout .course-drawer-actions .save { display: inline-flex; min-width: 138px; align-items: center; justify-content: center; background: #2c3f37; color: #fff; font-weight: 600; }
.course-product-step { margin: 16px 22px; padding: 24px; }
.course-product-step h3 { margin-bottom: 20px; font: 600 21px "Songti SC",serif; }
.course-product-step label small { display: block; margin-top: 5px; color: #9a9087; font-size: 9px; line-height: 1.45; }
.course-form-subtitle { margin: 23px 0 12px; padding-top: 18px; border-top: 1px solid #ece6df; font-size: 13px; }
.course-subhead { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin: 22px 0 10px; }
.course-subhead strong,
.course-subhead small { display: block; }
.course-subhead strong { font-size: 13px; }
.course-subhead small { margin-top: 3px; color: #958b82; font-size: 10px; }
.course-subhead button { height: 32px; padding: 0 12px; border: 1px solid #d8d1c9; border-radius: 8px; background: #fffdf9; color: #6d5c4b; font-size: 10px; }
.course-service-table { overflow: hidden; border: 1px solid #e4ded7; border-radius: 11px; background: #fbfaf8; }
.course-service-row { display: grid; grid-template-columns: 26px minmax(160px,1.35fr) 72px 72px 92px 70px 110px; align-items: end; gap: 8px; padding: 10px; border-bottom: 1px solid #eee9e3; }
.course-service-row:last-child { border-bottom: 0; }
.course-service-index { align-self: center; color: #a49a90; font: 13px Georgia,serif; }
.course-service-row label { margin: 0; font-size: 9px; }
.course-service-row input { height: 34px !important; margin-top: 4px; }
.course-service-row > strong { align-self: center; color: #8b633f; font-size: 10px; text-align: right; }
.course-service-actions { display: flex; justify-content: flex-end; gap: 4px; }
.course-service-actions button { width: 28px; height: 28px; padding: 0; border: 1px solid #ddd5cc; border-radius: 6px; background: #fff; color: #6e6257; font-size: 11px; }
.course-service-actions button.danger { color: #a45648; }
.course-platform-disclaimer { margin-top: 18px; padding: 15px 17px; border-radius: 11px; background: #f1eee8; }
.course-platform-disclaimer strong { font-size: 11px; }
.course-platform-disclaimer p { margin: 6px 0 0; color: #83786e; font-size: 10px; line-height: 1.6; }
.campaign-poster-modal { width: min(720px,94vw); }
.campaign-poster-preview {
  position: relative;
  min-height: 500px;
  padding: 34px;
  overflow: hidden;
  border-radius: 20px;
}
.campaign-poster-preview::after { content: ""; position: absolute; width: 320px; height: 320px; right: -120px; top: -130px; border: 1px solid rgba(120,90,60,.16); border-radius: 50%; }
.campaign-poster-label { color: #a6774b; font-size: 10px; letter-spacing: .18em; }
.campaign-poster-title { max-width: 470px; margin-top: 36px; font-family: "Songti SC", serif; font-size: 38px; font-weight: 600; line-height: 1.25; }
.campaign-poster-sub { margin-top: 14px; color: rgba(50,42,35,.65); font-size: 12px; line-height: 1.7; }
.campaign-poster-reward { display: inline-flex; margin-top: 22px; padding: 10px 14px; border-radius: 12px; background: rgba(255,255,255,.72); font-size: 13px; font-weight: 600; }
.campaign-poster-qr { position: absolute; right: 34px; bottom: 44px; display: grid; justify-items: center; gap: 5px; padding: 10px; border-radius: 12px; background: #fff; }
.campaign-poster-qr img { width: 150px; height: 150px; }
.campaign-poster-qr small { color: #7c746b; font-size: 9px; }
.campaign-poster-footer { position: absolute; left: 34px; bottom: 44px; max-width: 420px; color: rgba(50,42,35,.7); font-size: 11px; line-height: 1.6; }
.campaign-share-link { display: grid; grid-template-columns: 1fr 112px; gap: 8px; margin-top: 14px; }
.campaign-share-link input { height: 38px; padding: 0 10px; border: 1px solid #ddd5cc; border-radius: 8px; }
.campaign-share-link button { border: 1px solid #d9cbbb; border-radius: 8px; background: #fff; color: #806247; }
.course-wide-label textarea {
  width: 100%;
  min-height: 100px;
  margin-top: 8px;
  padding: 11px;
  border: 1px solid #d9dade;
  border-radius: 8px;
  resize: vertical;
}

.finance-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 18px;
  padding: 6px;
  border: 1px solid #dfd5c9;
  border-radius: 16px;
  background: #ebe3d9;
}
.finance-switch button {
  min-height: 54px;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #766b61;
  font-size: 14px;
  font-weight: 600;
}
.finance-switch button span {
  margin-right: 10px;
  color: #b58c66;
  font-size: 11px;
  letter-spacing: .12em;
}
.finance-switch button.active {
  background: #fff;
  color: #241e19;
  box-shadow: 0 6px 18px rgba(80,54,33,.08);
}

.onboarding-hero {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 30px;
  padding: 36px 40px;
  border-radius: 26px;
  background:
    radial-gradient(circle at 90% 10%, rgba(207,160,111,.28), transparent 30%),
    linear-gradient(125deg, #211c20, #49392f 65%, #a96f43);
  color: #fff;
}
.onboarding-hero h2 { margin: 12px 0 10px; font: 600 40px/1.15 "Songti SC", serif; }
.onboarding-hero p { max-width: 680px; margin: 0; color: rgba(255,255,255,.66); font-size: 13px; line-height: 1.75; }
.onboarding-hero .eyebrow { color: #dfb587; }
.onboarding-hero-badge {
  display: grid;
  min-width: 230px;
  align-content: center;
  padding: 22px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 20px;
  background: rgba(255,255,255,.07);
}
.onboarding-hero-badge small { color: rgba(255,255,255,.5); }
.onboarding-hero-badge strong { margin: 7px 0; font: 600 25px "Songti SC", serif; color: #f0d4b5; }
.onboarding-hero-badge span { color: rgba(255,255,255,.53); font-size: 11px; line-height: 1.5; }
.onboarding-stats { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.onboarding-stats .stat-card strong { font-size: 25px; }

.onboarding-share-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 230px;
  gap: 28px;
  margin-top: 18px;
  padding: 32px;
  border: 1px solid #ded2c4;
  border-radius: 24px;
  background:
    radial-gradient(circle at 0 100%, #f1e0cb 0, transparent 38%),
    #fffdf9;
}
.onboarding-share-copy h2,
.onboarding-share-card h2 { margin: 12px 0 10px; font: 600 32px/1.3 "Songti SC", serif; }
.onboarding-share-copy p,
.onboarding-share-card p { margin: 0; color: #786d63; font-size: 13px; line-height: 1.75; }
.onboarding-code {
  display: inline-flex;
  margin-top: 18px;
  padding: 8px 13px;
  border-radius: 999px;
  background: #eee3d5;
  color: #815e3c;
  font: 600 12px/1 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .1em;
}
.onboarding-share-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.onboarding-share-qr { display: grid; place-items: center; align-content: center; gap: 8px; padding: 18px; border-radius: 20px; background: #f3ece3; }
.onboarding-share-qr img { width: 180px; height: 180px; border-radius: 12px; background: #fff; }
.onboarding-share-qr small { color: #8c7d6f; }
.onboarding-share-generator { display: flex; gap: 10px; }
.onboarding-share-generator select { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid #d8cdc0; border-radius: 9px; background: #fff; }

.onboarding-plan-list { display: grid; gap: 14px; }
.onboarding-plan-form { padding: 22px; border: 1px solid #ded5cb; border-radius: 18px; background: #fbfaf7; }
.onboarding-plan-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.onboarding-plan-head small { display: block; color: #a37952; font-size: 10px; letter-spacing: .12em; }
.onboarding-plan-head strong { display: block; margin-top: 6px; font-size: 18px; }
.onboarding-plan-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.onboarding-new-plan { margin-top: 18px; padding: 16px; border: 1px dashed #cdbca9; border-radius: 17px; background: #f8f4ee; }
.onboarding-new-plan > summary { cursor: pointer; color: #8b603d; font-weight: 650; }
.onboarding-new-plan .onboarding-plan-form { margin-top: 16px; background: #fff; }
.onboarding-public-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.onboarding-public-plan { display: grid; gap: 8px; padding: 20px; border: 1px solid #e0d6ca; border-radius: 16px; background: #fcfaf6; }
.onboarding-public-plan strong { font-size: 16px; }
.onboarding-public-plan span { color: #886a4f; font-weight: 600; }
.onboarding-public-plan small { color: #867b71; line-height: 1.55; }
.onboarding-filter { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 16px; }
.cell-sub { display: block; margin-top: 5px; color: #978c82; font-size: 10px; line-height: 1.45; }
.cell-mono { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; word-break: break-all; }

.onboarding-poster-modal { width: min(920px, calc(100vw - 40px)); }
.onboarding-poster-visual {
  position: relative;
  overflow: hidden;
  min-height: 560px;
  margin-top: 15px;
  padding: 50px;
  border-radius: 22px;
  background:
    radial-gradient(circle at 10% 100%, rgba(201,144,89,.35), transparent 40%),
    linear-gradient(130deg, #211c20, #4b392d 65%, #b1784b);
  color: #fff;
}
.onboarding-poster-visual::after { content: "CU"; position: absolute; right: -20px; bottom: -100px; color: rgba(255,255,255,.05); font: 300 340px/1 "Songti SC", serif; }
.onboarding-poster-kicker { color: #e1b487; font-size: 11px; font-weight: 650; letter-spacing: .2em; }
.onboarding-poster-title { margin-top: 62px; font: 600 62px/1.16 "Songti SC", serif; }
.onboarding-poster-sub { margin-top: 18px; color: rgba(255,255,255,.65); font-size: 14px; }
.onboarding-poster-qr { position: absolute; z-index: 1; right: 174px; bottom: 55px; display: grid; justify-items: center; gap: 8px; padding: 13px; border-radius: 16px; background: #fff; color: #2a211b; font-size: 11px; }
.onboarding-poster-qr img { width: 190px; height: 190px; }
.onboarding-poster-footer { position: absolute; left: 50px; bottom: 62px; color: #e9c59d; font: 600 17px "Songti SC", serif; }

@media (max-width: 980px) {
  .sidebar { position: static; width: 100%; min-height: auto; }
  .app-shell { display: block; }
  .workspace { width: 100%; margin-left: 0; padding: 24px; }
  #nav { display: block; }
  .nav-group-tabs { max-width: 620px; grid-template-columns: repeat(4,minmax(100px,1fr)); }
  .nav-view-list { display: flex; flex-wrap: wrap; }
  .nav-view-list .nav-view-item { flex: 0 0 auto; min-width: 120px; }
  .logout { margin-top: 20px; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .permission-groups { grid-template-columns: 1fr; }
  .toolbar-grid.customer-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .toolbar-grid.store-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-fields, .qualification-grid, .change-grid, .setting-grid,
  .renewal-summary-grid, .cooperation-summary-grid, .cooperation-forms,
  .qualification-upload-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .audit-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .team-layout { grid-template-columns: 1fr; }
  .team-org-panel { position: static; }
  .team-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .team-permission-groups { grid-template-columns: 1fr; }
  .employee-store-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .decoration-layout { grid-template-columns: 1fr; }
  .decorator-shell { grid-template-columns: 190px minmax(360px, 1fr); }
  .decorator-properties { position: static; grid-column: 1 / -1; max-height: none; }
  .smart-service-grid { grid-template-columns: 1fr; }
  .smart-service-side { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .service-stat-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .course-guidance { grid-template-columns: 1fr 1fr; }
  .course-guidance-lead { grid-column: 1 / -1; }
  .course-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .course-filter-second { grid-template-columns: minmax(180px, 1fr) 100px 80px; }
  .course-filter-tip { display: none; }
  .transaction-filter-row.primary-row,
  .transaction-filter-row.secondary-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .transaction-filter-actions { grid-column: 1 / -1; }
  .transaction-fact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .after-sale-filter-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .assist-steps { grid-template-columns: 1fr; }
  .goods-order-filter .secondary-row { grid-template-columns: 1fr; }
  .goods-shipping-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .goods-shipping-form button { grid-column: 1 / -1; }
  .assessment-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .customer-growth-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .customer-dashboard-grid,
  .customer-dashboard-grid.lower,
  .customer-ai-grid { grid-template-columns: 1fr; }
  .service-document-upload-grid { grid-template-columns: 1fr 1fr; }
  .service-document-history { grid-column: 1 / -1; }
  .campaign-template-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .campaign-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .onboarding-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .onboarding-marketing-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .onboarding-campaign-layout,
  .onboarding-h5-grid { grid-template-columns: 1fr; }
  .finance-account-hero { grid-template-columns: 1fr 1fr; }
  .finance-rule-card { grid-column: 1 / -1; }
  .finance-summary-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .finance-settings-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .finance-quick-grid,
  .finance-fact-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .onboarding-plan-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .onboarding-public-plans { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .topbar { align-items: flex-start; flex-direction: column; }
  .top-actions { width: 100%; justify-content: space-between; }
  .stat-grid, .form-grid, .permission-grid, .scope-facts { grid-template-columns: 1fr; }
  .dy-filter-row, .profile-fields, .qualification-grid, .change-grid, .setting-grid,
  .renewal-summary-grid, .cooperation-summary-grid, .cooperation-forms,
  .qualification-upload-grid, .audit-filter-grid { grid-template-columns: 1fr; }
  .decorator-shell { grid-template-columns: 1fr; }
  .decorator-components { position: static; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .decorator-canvas { padding: 12px; }
  .decorator-phone { width: min(360px, 100%); }
  .smart-service-side { grid-template-columns: 1fr; }
  .knowledge-filter, .quick-reply-row { grid-template-columns: 1fr; }
  .service-flow { align-items: stretch; flex-direction: column; }
  .service-flow i { transform: rotate(90deg); text-align: center; }
  .section-row-actions, .renewal-alert-row { align-items: flex-start; flex-direction: column; }
  .profile-fields .wide { grid-column: auto; }
  .store-batch-bar { align-items: flex-start; flex-direction: column; }
  .scope-picker > input { width: min(230px, 60vw); }
  .nav-group-tabs { grid-template-columns: repeat(2,minmax(120px,1fr)); }
  .nav-view-list .nav-view-item { min-width: 130px; }
  .course-guidance { grid-template-columns: 1fr; }
  .course-guidance-lead { grid-column: auto; }
  .course-filter-grid,
  .course-filter-second { grid-template-columns: 1fr; }
  .course-action-bar { align-items: flex-start; flex-direction: column; }
  .course-store-picker-list,
  .course-form-section .form-grid { grid-template-columns: 1fr; }
  .course-drawer-head { padding: 20px; }
  .course-form-section { margin: 10px; padding: 16px; }
  .transaction-title-row { align-items: flex-start; flex-direction: column; }
  .transaction-top-actions { width: 100%; flex-wrap: wrap; }
  .transaction-filter-row.primary-row,
  .transaction-filter-row.secondary-row { grid-template-columns: 1fr; }
  .transaction-filter-actions,
  .transaction-date-control { grid-column: auto; }
  .transaction-summary-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .transaction-fact-grid { grid-template-columns: 1fr; }
  .after-sale-assist > form { grid-template-columns: 1fr; }
  .after-sale-filter-row { grid-template-columns: 1fr; }
  .goods-shipping-form,
  .goods-logistics-form .form-grid { grid-template-columns: 1fr; }
  .goods-shipping-form button { grid-column: auto; }
  .goods-order-alert { align-items: flex-start; flex-direction: column; }
  .goods-order-alert button { width: 100%; }
  .goods-logistics-event-copy > div {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }
  .assessment-overview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .assessment-filter-row { grid-template-columns: 1fr; }
  .assessment-result-hero { align-items: flex-start; flex-direction: column; }
  .employee-store-filters,
  .employee-store-options { grid-template-columns: 1fr; }
  .team-filter-actions { grid-column: 1 / -1; }
  .customer-growth-head { align-items: flex-start; flex-direction: column; }
  .customer-growth-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .customer-subtabs { overflow-x: auto; }
  .customer-subtabs button { flex: 0 0 auto; }
  .customer-transfer-form,
  .customer-order-transfer-form,
  .customer-lead-form { grid-template-columns: 1fr; }
  .customer-transfer-form .full-span,
  .customer-transfer-form .transfer-check,
  .customer-transfer-form .form-actions { grid-column: auto; }
  .service-document-upload-grid { grid-template-columns: 1fr; }
  .service-document-history { grid-column: auto; }
  .campaign-center-head { align-items: flex-start; flex-direction: column; }
  .campaign-review-warning { align-items: flex-start; flex-direction: column; }
  .campaign-review-warning button { width: 100%; }
  .campaign-template-grid,
  .campaign-stats { grid-template-columns: 1fr; }
  .launch-review-hero { align-items: stretch; flex-direction: column; }
  .launch-review-hero > button { width: 100%; }
  .launch-review-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .launch-review-blockers { grid-template-columns: 1fr; }
  .launch-review-form-grid { grid-template-columns: 1fr; }
  .launch-review-form-grid .wide { grid-column: auto; }
  .campaign-poster-preview { min-height: 570px; padding: 24px; }
  .campaign-poster-qr { left: 24px; right: auto; bottom: 24px; }
  .campaign-poster-footer { display: none; }
  .campaign-share-link { grid-template-columns: 1fr; }
  .finance-switch { grid-template-columns: 1fr; }
  .onboarding-hero { align-items: stretch; flex-direction: column; padding: 26px 24px; }
  .onboarding-hero-badge { min-width: 0; }
  .onboarding-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .onboarding-marketing-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .onboarding-share-card { grid-template-columns: 1fr; padding: 24px; }
  .onboarding-share-qr { justify-self: center; width: 100%; }
  .onboarding-share-generator { flex-direction: column; }
  .onboarding-plan-grid,
  .onboarding-filter { grid-template-columns: 1fr; }
  .onboarding-poster-modal { width: calc(100vw - 20px); }
  .onboarding-poster-visual { min-height: 520px; padding: 28px; }
  .onboarding-poster-title { font-size: 43px; }
  .onboarding-poster-qr { left: 28px; right: auto; bottom: 28px; }
  .onboarding-poster-footer { display: none; }
  .marketing-module-tabs { grid-template-columns: 1fr; }
  .finance-head-row { flex-direction: column; }
  .finance-account-chip { width: 100%; min-width: 0; }
  .finance-period-toolbar { align-items: stretch; flex-direction: column; }
  .finance-period-toolbar .data-meta { margin-left: 0; padding-bottom: 0; }
  .finance-account-hero { grid-template-columns: 1fr; }
  .finance-rule-card { grid-column: auto; }
  .finance-summary-grid,
  .finance-settings-grid,
  .finance-quick-grid,
  .finance-fact-grid,
  .finance-campus-filter,
  .onboarding-h5-uploads { grid-template-columns: 1fr; }
  .onboarding-h5-form .form-grid { grid-template-columns: 1fr; }
}

/* Academic AI risk and sales mastery */
.ai-risk-hero,
.ai-coach-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 240px;
  padding: 38px 42px;
  overflow: hidden;
  border-radius: 28px;
  color: #FBF8F3;
}
.ai-risk-hero {
  background:
    radial-gradient(circle at 82% 18%, rgba(219, 177, 132, .28), transparent 22%),
    linear-gradient(120deg, #24211D, #4A332B 55%, #8F5C47);
}
.ai-coach-hero {
  background:
    radial-gradient(circle at 84% 18%, rgba(197, 218, 205, .2), transparent 23%),
    linear-gradient(120deg, #1C2825, #324840 58%, #756146);
}
.ai-risk-hero::after,
.ai-coach-hero::after {
  position: absolute;
  right: 120px;
  bottom: -160px;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 50%;
  content: "";
}
.ai-risk-hero .eyebrow,
.ai-coach-hero .eyebrow { color: #DFC19D; }
.ai-risk-hero h2,
.ai-coach-hero h2 {
  margin: 13px 0 13px;
  font-family: "Songti SC", serif;
  font-size: clamp(30px, 3vw, 45px);
  font-weight: 600;
  line-height: 1.22;
}
.ai-risk-hero p,
.ai-coach-hero p {
  max-width: 720px;
  margin: 0;
  color: rgba(255,255,255,.65);
  font-size: 13px;
  line-height: 1.8;
}
.ai-risk-orbit,
.ai-coach-score-ring {
  display: grid;
  flex: 0 0 150px;
  min-height: 150px;
  place-items: center;
  padding: 20px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  background: rgba(255,255,255,.07);
  text-align: center;
  backdrop-filter: blur(10px);
}
.ai-risk-orbit span,
.ai-risk-orbit small,
.ai-coach-score-ring span,
.ai-coach-score-ring small { color: rgba(255,255,255,.66); font-size: 11px; }
.ai-risk-orbit b,
.ai-coach-score-ring b { margin: 2px 0; font: 500 52px Georgia, serif; }
.ai-risk-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
}
.ai-risk-stats button {
  padding: 20px 22px;
  border: 1px solid #E8DFD4;
  border-radius: 18px;
  background: #fff;
  color: #2A2520;
  text-align: left;
}
.ai-risk-stats button.active { border-color: #A47858; box-shadow: 0 10px 22px rgba(78,54,37,.09); }
.ai-risk-stats button.active.danger { border-color: #C35B49; background: #FFF7F4; }
.ai-risk-stats button.active.gold { border-color: #B99351; background: #FFFBF2; }
.ai-risk-stats button.active.green { border-color: #72937B; background: #F6FBF7; }
.ai-risk-stats small,
.ai-risk-stats strong,
.ai-risk-stats span { display: block; }
.ai-risk-stats small { color: #8E847A; font-size: 11px; }
.ai-risk-stats strong { margin: 8px 0 3px; font: 500 31px Georgia, serif; }
.ai-risk-stats span { color: #A3988D; font-size: 10px; }
.ai-risk-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 10px 2px;
}
.ai-risk-toolbar > div { display: flex; align-items: center; gap: 10px; }
.ai-risk-list { display: grid; gap: 14px; }
.ai-risk-card {
  position: relative;
  padding: 25px 26px;
  overflow: hidden;
  border: 1px solid #E8DFD5;
  border-radius: 23px;
  background: #fff;
}
.ai-risk-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #7B927F;
  content: "";
}
.ai-risk-card.medium::before { background: #B8944F; }
.ai-risk-card.high::before { background: #C35D49; }
.ai-risk-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}
.ai-risk-person { display: flex; align-items: center; gap: 14px; }
.ai-risk-person > span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 50%;
  background: #EEE4D8;
  color: #745B46;
  font-family: "Songti SC", serif;
  font-size: 18px;
  font-weight: 600;
}
.ai-risk-person h3 { margin: 0; font-size: 17px; }
.ai-risk-person p { margin: 5px 0 0; color: #958A7F; font-size: 11px; }
.ai-risk-score { display: flex; align-items: center; gap: 10px; }
.ai-risk-score b { font: 500 26px Georgia, serif; }
.ai-risk-score small { color: #9B9085; font-size: 10px; }
.ai-risk-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 18px;
}
.ai-risk-facts > div { padding: 11px 13px; border-radius: 11px; background: #F8F5F0; }
.ai-risk-facts small,
.ai-risk-facts strong { display: block; }
.ai-risk-facts small { color: #9A8F83; font-size: 9px; }
.ai-risk-facts strong { margin-top: 4px; color: #4A4037; font-size: 11px; }
.ai-factor-row { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.ai-factor-row span {
  padding: 6px 10px;
  border-radius: 999px;
  background: #F2E8DD;
  color: #785E49;
  font-size: 10px;
}
.ai-risk-evidence { margin-top: 16px; padding: 14px 16px; border-radius: 13px; background: #FBFAF7; }
.ai-risk-evidence h4,
.ai-risk-action h4 { margin: 0 0 10px; font-size: 12px; }
.ai-risk-evidence > div {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) 170px;
  align-items: center;
  gap: 9px;
  padding: 6px 0;
  border-top: 1px solid #F0EAE2;
}
.ai-risk-evidence i { width: 6px; height: 6px; border-radius: 50%; background: #AA7656; }
.ai-risk-evidence span { color: #61564D; font-size: 11px; }
.ai-risk-evidence small { color: #A2978C; font: 9px ui-monospace, monospace; text-align: right; }
.ai-risk-action {
  display: grid;
  grid-template-columns: minmax(170px, .6fr) minmax(0, 1.4fr);
  gap: 15px 24px;
  margin-top: 16px;
  padding: 16px 18px;
  border-radius: 14px;
  background: #26352F;
  color: #fff;
}
.ai-risk-action h4 { margin: 5px 0 0; color: #FFF6EA; }
.ai-risk-action ol { margin: 0; padding-left: 18px; color: rgba(255,255,255,.74); font-size: 11px; line-height: 1.8; }
.ai-risk-avoid { grid-column: 2; display: flex; flex-wrap: wrap; gap: 7px; }
.ai-risk-avoid span { padding: 5px 8px; border-radius: 7px; background: rgba(255,255,255,.09); color: #E8BFAF; font-size: 9px; }
.ai-missing { margin-top: 10px; color: #A06B53; font-size: 10px; }
.ai-missing span { margin-left: 7px; padding: 4px 7px; border-radius: 6px; background: #FFF0E8; }
.ai-risk-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 16px;
}
.ai-risk-card-footer small { color: #A1968B; font-size: 9px; }
.ai-method-panel { padding: 22px; }
.ai-method-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}
.ai-method-grid > div { display: flex; gap: 10px; padding: 12px; border-radius: 11px; background: #F8F5F0; }
.ai-method-grid b { color: #9A714F; font: 14px Georgia, serif; }
.ai-method-grid span { color: #73685F; font-size: 10px; line-height: 1.55; }
.academic-risk-drawer-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}
.academic-risk-drawer-summary > div { padding: 15px; border-radius: 13px; background: #F6F2EC; }
.academic-risk-drawer-summary small,
.academic-risk-drawer-summary strong { display: block; }
.academic-risk-drawer-summary small { color: #978C80; font-size: 9px; }
.academic-risk-drawer-summary strong { margin-top: 4px; font: 24px Georgia, serif; }
.academic-risk-drawer-action { padding: 16px; border-radius: 14px; background: #26352F; color: rgba(255,255,255,.78); }
.academic-risk-drawer-action > strong { color: #F2DEC7; font-size: 12px; }
.academic-risk-drawer-action ol { padding-left: 18px; font-size: 11px; line-height: 1.75; }
.academic-risk-drawer-action > div { display: flex; flex-wrap: wrap; gap: 7px; }
.academic-risk-drawer-action span { padding: 5px 8px; border-radius: 7px; background: rgba(255,255,255,.09); color: #E8BEAE; font-size: 9px; }
.ai-coach-grid {
  display: grid;
  grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr);
  gap: 15px;
}
.ai-learning-banner {
  display: grid;
  grid-template-columns: minmax(260px, .8fr) minmax(0, 1.2fr);
  align-items: center;
  gap: 22px;
  padding: 21px 24px;
  border: 1px solid #E6DED4;
  border-radius: 19px;
  background: #FFFCF8;
}
.ai-learning-banner h3 { margin: 7px 0 6px; font-family: "Songti SC", serif; font-size: 20px; }
.ai-learning-banner p { margin: 0; color: #8E8277; font-size: 11px; line-height: 1.65; }
.ai-learning-facts { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.ai-learning-facts > div { padding: 12px; border-radius: 11px; background: #F4F0EA; }
.ai-learning-facts small,
.ai-learning-facts strong { display: block; }
.ai-learning-facts small { color: #9C9185; font-size: 9px; }
.ai-learning-facts strong { margin-top: 5px; color: #51483F; font-size: 10px; line-height: 1.5; }
.ai-drill-card,
.ai-review-card { padding: 23px; }
.ai-drill-card > p { color: #6E635A; font-size: 12px; line-height: 1.8; }
.ai-drill-target { padding: 14px; border-radius: 12px; background: #F6F1E9; }
.ai-drill-target span,
.ai-drill-target strong { display: block; }
.ai-drill-target span { color: #A47B59; font-size: 9px; letter-spacing: .08em; }
.ai-drill-target strong { margin-top: 6px; color: #4D433A; font-size: 11px; line-height: 1.65; }
.ai-drill-rubric { display: flex; flex-wrap: wrap; gap: 6px; margin: 13px 0; }
.ai-drill-rubric span { padding: 5px 8px; border-radius: 999px; background: #EEF2EF; color: #5B7063; font-size: 9px; }
.ai-review-card form { display: grid; gap: 10px; }
.ai-review-card textarea { min-height: 130px; }
.ai-review-result { margin-top: 16px; padding: 17px; border-radius: 16px; background: #F7F3ED; }
.ai-review-result-head { display: flex; align-items: center; justify-content: space-between; }
.ai-review-result-head small,
.ai-review-result-head strong { display: block; }
.ai-review-result-head small { color: #958A7E; font-size: 9px; }
.ai-review-result-head strong { font: 40px Georgia, serif; }
.ai-review-result-head > span { padding: 7px 11px; border-radius: 999px; background: #263B34; color: #fff; font-size: 10px; }
.ai-review-dimensions { display: grid; gap: 7px; margin-top: 12px; }
.ai-review-dimensions > div { display: grid; grid-template-columns: 84px minmax(0,1fr) 30px; align-items: center; gap: 8px; font-size: 9px; }
.ai-review-dimensions i { display: block; height: 5px; overflow: hidden; border-radius: 999px; background: #E7E0D7; }
.ai-review-dimensions em { display: block; height: 100%; border-radius: inherit; background: #5D7C6C; }
.ai-review-dimensions b { color: #695C51; text-align: right; }
.ai-review-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.ai-review-columns h4 { margin: 0 0 5px; font-size: 10px; }
.ai-review-columns p { margin: 0; color: #796E64; font-size: 10px; line-height: 1.6; }
.ai-review-result blockquote { margin: 13px 0 0; padding: 13px; border-left: 3px solid #A87A57; background: #fff; color: #55493F; font-size: 11px; line-height: 1.75; }
.ai-playbook-head { display: flex; align-items: flex-end; justify-content: space-between; padding: 10px 2px 0; }
.ai-playbook-head h3 { margin: 6px 0 0; font-family: "Songti SC", serif; font-size: 25px; font-weight: 600; }
.ai-playbook-head > span { color: #9A8F84; font-size: 10px; }
.ai-playbook-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.ai-playbook-card {
  position: relative;
  padding: 20px;
  overflow: hidden;
  border: 1px solid #E9E0D5;
  border-radius: 19px;
  background: #fff;
}
.ai-playbook-number { position: absolute; top: 9px; right: 14px; color: #EEE7DE; font: 38px Georgia, serif; }
.ai-playbook-card > span { color: #A47B57; font-size: 9px; letter-spacing: .1em; }
.ai-playbook-card h3 { position: relative; margin: 9px 0 8px; font-size: 16px; }
.ai-playbook-card > p { min-height: 54px; margin: 0; color: #8D8277; font-size: 10px; line-height: 1.65; }
.ai-playbook-questions,
.ai-playbook-avoid { margin-top: 12px; padding-top: 10px; border-top: 1px solid #F0EBE4; }
.ai-playbook-questions b,
.ai-playbook-avoid b { display: block; margin-bottom: 5px; color: #6B5D51; font-size: 9px; }
.ai-playbook-questions small,
.ai-playbook-avoid small { display: block; margin-top: 4px; color: #94897E; font-size: 9px; line-height: 1.5; }
.ai-playbook-avoid small { color: #A56B59; }
.ai-playbook-evidence { margin-top: 10px; padding: 7px 8px; border-radius: 7px; background: #EEF2EF; color: #65766C; font-size: 9px; }

@media (max-width: 1180px) {
  .ai-risk-stats,
  .ai-playbook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-method-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-coach-grid { grid-template-columns: 1fr; }
  .ai-learning-banner { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .ai-risk-hero,
  .ai-coach-hero { align-items: flex-start; flex-direction: column; gap: 22px; padding: 27px 23px; }
  .ai-risk-orbit,
  .ai-coach-score-ring { width: 110px; min-height: 110px; flex-basis: 110px; }
  .ai-risk-stats,
  .ai-playbook-grid,
  .ai-method-grid { grid-template-columns: 1fr; }
  .ai-risk-toolbar,
  .ai-risk-card-head,
  .ai-risk-card-footer,
  .ai-playbook-head { align-items: flex-start; flex-direction: column; }
  .ai-risk-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-risk-evidence > div { grid-template-columns: 8px minmax(0,1fr); }
  .ai-risk-evidence small { grid-column: 2; text-align: left; }
  .ai-risk-action { grid-template-columns: 1fr; }
  .ai-risk-avoid { grid-column: auto; }
  .ai-review-columns { grid-template-columns: 1fr; }
  .ai-learning-facts { grid-template-columns: 1fr; }
}

.ai-billing-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 210px;
  padding: 34px 38px;
  overflow: hidden;
  border-radius: 27px;
  background:
    radial-gradient(circle at 84% 12%, rgba(230, 192, 143, .24), transparent 24%),
    linear-gradient(120deg, #191E1B, #2E3E39 56%, #806046);
  color: #fff;
}
.ai-billing-hero.store {
  background:
    radial-gradient(circle at 84% 12%, rgba(214, 192, 157, .22), transparent 24%),
    linear-gradient(120deg, #24201C, #504034 58%, #8F7253);
}
.ai-billing-hero .eyebrow { color: #DFC097; }
.ai-billing-hero h2 { margin: 11px 0 9px; font-family: "Songti SC", serif; font-size: clamp(29px, 3vw, 42px); line-height: 1.25; font-weight: 600; }
.ai-billing-hero p { max-width: 720px; margin: 0; color: rgba(255,255,255,.65); font-size: 12px; line-height: 1.75; }
.ai-billing-hero-amount {
  display: grid;
  flex: 0 0 190px;
  min-height: 130px;
  place-items: center;
  padding: 20px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 20px;
  background: rgba(255,255,255,.07);
  text-align: center;
  backdrop-filter: blur(10px);
}
.ai-billing-hero-amount small,
.ai-billing-hero-amount span { color: rgba(255,255,255,.64); font-size: 10px; }
.ai-billing-hero-amount b { font: 500 34px Georgia, serif; }
.ai-billing-totals {
  display: grid;
  grid-template-columns: repeat(4, minmax(0,1fr));
  gap: 10px;
}
.ai-billing-totals > div,
.ai-billing-wallet > div {
  padding: 19px 21px;
  border: 1px solid #E8DED3;
  border-radius: 17px;
  background: #fff;
}
.ai-billing-totals small,
.ai-billing-totals strong,
.ai-billing-totals span,
.ai-billing-wallet small,
.ai-billing-wallet strong,
.ai-billing-wallet span { display: block; }
.ai-billing-totals small,
.ai-billing-wallet small { color: #978C81; font-size: 9px; }
.ai-billing-totals strong,
.ai-billing-wallet strong { margin: 7px 0 4px; font: 500 27px Georgia, serif; }
.ai-billing-totals span,
.ai-billing-wallet span { color: #A1978D; font-size: 9px; }
.ai-billing-layout {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(320px,.85fr);
  gap: 13px;
}
.ai-billing-layout > .panel { padding: 22px; min-width: 0; }
.ai-billing-settings-form .form-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
.ai-provider-list { display: grid; gap: 8px; }
.ai-provider-card {
  display: grid;
  grid-template-columns: minmax(150px,.8fr) minmax(190px,1fr);
  gap: 8px 14px;
  padding: 13px;
  border: 1px solid #ECE4DA;
  border-radius: 13px;
  background: #FBF9F6;
}
.ai-provider-card.selected { border-color: #8F6B4F; background: #FFF9F1; }
.ai-provider-card > div:first-child span,
.ai-provider-card > div:first-child b { display: block; }
.ai-provider-card > div:first-child span { color: #3E352E; font-size: 11px; font-weight: 600; }
.ai-provider-card > div:first-child b { margin-top: 4px; color: #9B8F82; font: 9px ui-monospace, monospace; }
.ai-provider-card > div:nth-child(2) { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.ai-provider-card small { color: #74685D; font-size: 9px; }
.ai-provider-card em { padding: 3px 6px; border-radius: 999px; background: #EDF3EF; color: #5D7663; font-size: 8px; font-style: normal; }
.ai-provider-card em.danger { background: #FBE9E5; color: #9E513E; }
.ai-provider-card p { grid-column: 1 / -1; margin: 0; color: #9A8E82; font-size: 9px; }
.ai-store-search { color: #7A6E63; font-size: 10px; }
.ai-store-search input { display: block; width: 230px; margin-top: 5px; }
.ai-forecast-table td { font-size: 10px; }
.ai-billing-wallet {
  display: grid;
  grid-template-columns: 1.3fr repeat(3,minmax(0,.8fr));
  gap: 10px;
}
.ai-billing-wallet .ai-quota-card { padding: 19px 21px; border: 1px solid #E8DED3; border-radius: 17px; background: #fff; }
.ai-quota-card > div { display: grid; grid-template-columns: 1fr auto; align-items: end; }
.ai-quota-card small,
.ai-quota-card strong,
.ai-quota-card span { display: block; }
.ai-quota-card small { color: #978C81; font-size: 9px; }
.ai-quota-card strong { font: 26px Georgia, serif; }
.ai-quota-card span { grid-column: 2; color: #A1978D; font-size: 9px; }
.ai-quota-card > i { display: block; height: 6px; margin-top: 12px; overflow: hidden; border-radius: 999px; background: #ECE5DC; }
.ai-quota-card > i em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg,#8E684F,#C19869); }
.ai-billing-alert { padding: 13px 16px; border-radius: 13px; background: #FFF1EC; color: #9C4F3D; font-size: 11px; }
.ai-billing-alert > button { margin-left: 10px; padding: 5px 9px; border: 0; border-radius: 999px; background: #A65340; color: #fff; font-size: 9px; }
.ai-billing-alert form { display: inline-flex; gap: 7px; margin-left: 10px; }
.ai-billing-alert input { width: 90px; }
.ai-recharge-form { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 8px; }
.ai-recharge-order-list { display: grid; gap: 7px; margin-top: 13px; }
.ai-recharge-order-list > div { display: grid; grid-template-columns: 1fr auto; gap: 3px 10px; padding: 9px 10px; border-radius: 9px; background: #F8F5F0; }
.ai-recharge-order-list b { font-size: 10px; }
.ai-recharge-order-list small { grid-column: 1 / -1; color: #9D9287; font-size: 8px; }

@media (max-width: 1040px) {
  .ai-billing-totals { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .ai-billing-layout { grid-template-columns: 1fr; }
  .ai-billing-wallet { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 720px) {
  .ai-billing-hero { align-items: stretch; flex-direction: column; gap: 20px; padding: 26px 23px; }
  .ai-billing-hero-amount { min-height: 100px; flex-basis: auto; }
  .ai-billing-totals,
  .ai-billing-wallet { grid-template-columns: 1fr; }
  .ai-billing-settings-form .form-grid { grid-template-columns: 1fr; }
  .ai-provider-card { grid-template-columns: 1fr; }
  .ai-provider-card > div:nth-child(2) { justify-content: flex-start; }
  .ai-store-search input { width: 100%; }
}

/* 2026 editorial visual layer: warm paper, brown ink and restrained orange */
:root {
  --ink: #3e2f26;
  --muted: #8a8077;
  --paper: #f7f4ee;
  --line: #e6dfd5;
  --gold: #c8753f;
  --violet: #a66c4f;
  --white: #fffdf9;
  --danger: #a95143;
}

body {
  color: var(--ink);
  background:
    radial-gradient(circle at 96% 2%, rgba(200, 117, 63, .07), transparent 24%),
    linear-gradient(180deg, #faf8f4 0%, var(--paper) 46%, #f4f0e9 100%);
  font-family: "Avenir Next", "PingFang SC", -apple-system, BlinkMacSystemFont, sans-serif;
  font-weight: 400;
  letter-spacing: .01em;
}

.login-shell {
  background:
    radial-gradient(circle at 18% 16%, rgba(200, 117, 63, .12), transparent 30%),
    radial-gradient(circle at 84% 84%, rgba(100, 118, 96, .1), transparent 32%),
    #f7f4ee;
}

.login-card {
  border-color: #ded5c9;
  border-radius: 12px;
  background: rgba(255, 253, 249, .9);
  box-shadow: 0 28px 90px rgba(62, 47, 38, .1);
}

.login-card h1 {
  font-weight: 400;
  letter-spacing: .015em;
}

.brand-mark {
  color: var(--gold);
  letter-spacing: .28em;
}

.primary {
  border-radius: 6px;
  background: var(--ink);
  letter-spacing: .08em;
}

.app-shell {
  background: transparent;
}

.sidebar {
  width: 258px;
  padding: 26px 18px 20px;
  border-right: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255, 253, 249, .96), rgba(245, 241, 234, .96));
  color: var(--ink);
  box-shadow: 16px 0 50px rgba(62, 47, 38, .035);
}

.brand {
  padding: 6px 12px 24px;
  border-bottom-color: var(--line);
}

.brand strong {
  margin-top: 12px;
  color: var(--ink);
  font-weight: 400;
  letter-spacing: .02em;
}

.brand small {
  color: var(--muted);
  font-weight: 300;
  letter-spacing: .1em;
}

.nav-group-tabs {
  gap: 4px;
  padding: 5px;
  border-color: var(--line);
  border-radius: 8px;
  background: #f2ede6;
}

#nav .nav-group-tab {
  height: 34px;
  border-radius: 5px;
  color: #8b8178;
  font-weight: 400;
}

#nav .nav-group-tab.active {
  background: var(--ink);
  color: var(--white);
  box-shadow: none;
}

.nav-view-list {
  gap: 3px;
  margin-top: 12px;
}

#nav button {
  height: 42px;
  border-radius: 6px;
  color: #73685f;
  font-weight: 400;
}

#nav button span {
  color: #b1a79e;
  font-family: Georgia, "Times New Roman", serif;
  letter-spacing: .05em;
}

#nav button.active,
#nav button:hover {
  background: #eee5da;
  color: var(--ink);
  box-shadow: inset 3px 0 0 var(--gold);
}

#nav button.active span,
#nav button:hover span {
  color: var(--gold);
}

.logout {
  border-color: #d8cec2;
  border-radius: 6px;
  color: #74695f;
  background: rgba(255, 253, 249, .7);
}

.preview-switch {
  border-color: var(--line);
  border-radius: 8px;
  background: rgba(255, 253, 249, .72);
}

.preview-switch > span {
  color: #9c9288;
}

.preview-switch button {
  border-color: #dcd3c8;
  border-radius: 5px;
  color: #796f65;
  background: transparent;
}

.preview-switch button.active {
  border-color: var(--ink);
  background: var(--ink);
}

.workspace {
  width: calc(100% - 258px);
  margin-left: 258px;
  padding: 36px 42px 72px;
}

.topbar {
  min-height: 88px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line);
}

.eyebrow {
  color: var(--gold);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .24em;
}

.topbar h1 {
  margin-top: 9px;
  font-size: 38px;
  font-weight: 400;
  letter-spacing: .02em;
}

.scope-picker > input,
.scope-picker > button {
  border-color: #ddd4c8;
  border-radius: 6px;
  background: rgba(255, 253, 249, .72);
}

.account {
  border-left-color: var(--line);
}

.account span {
  font-weight: 400;
}

.content {
  margin-top: 28px;
}

.stat-card,
.panel,
.data-card {
  border-color: var(--line);
  border-radius: 10px;
  background: rgba(255, 253, 249, .82);
  box-shadow: 0 14px 42px rgba(62, 47, 38, .045);
}

.stat-card {
  position: relative;
  overflow: hidden;
  padding: 24px 24px 22px;
}

.stat-card::before {
  position: absolute;
  top: 0;
  left: 0;
  width: 42px;
  height: 2px;
  background: var(--gold);
  content: "";
}

.stat-card small {
  color: #8f857c;
  font-weight: 300;
  letter-spacing: .04em;
}

.stat-card strong {
  margin-top: 14px;
  font-size: 36px;
  font-weight: 400;
}

.panel {
  padding: 28px;
}

.panel-head {
  margin-bottom: 22px;
}

.panel-title {
  font-family: "Songti SC", serif;
  font-size: 20px;
  font-weight: 400;
}

.panel-subtitle {
  color: #91877e;
  font-weight: 300;
  line-height: 1.65;
}

.badge {
  border: 1px solid #e5d9cc;
  border-radius: 4px;
  background: #f4ece2;
  color: #895f3e;
  font-weight: 400;
}

.badge.green {
  border-color: #d9e4da;
  background: #edf3ed;
  color: #526b56;
}

.badge.gold {
  border-color: #ead9c4;
  background: #f8efe3;
  color: #8d613a;
}

.save,
.primary-transaction,
.outline-action,
.secondary,
.danger-fill,
.link-btn {
  border-radius: 5px;
}

.save,
.primary-transaction {
  background: var(--ink);
  color: var(--white);
}

.secondary,
.outline-action {
  border-color: #dbd1c5;
  background: rgba(255, 253, 249, .72);
  color: #6e6258;
}

.renewal-summary-card,
.academic-tabs,
.academic-kpi-grid > div,
.academic-class-card,
.ai-learning-banner,
.ai-drill-card,
.ai-review-card,
.ai-playbook-card,
.ai-billing-totals > div,
.ai-billing-wallet > div {
  border-radius: 9px;
  box-shadow: none;
}

.academic-tabs button {
  border-radius: 5px;
}

.academic-tabs button.active {
  background: var(--ink);
}

.renewal-summary-card {
  background: rgba(255, 253, 249, .74);
}

.store-profile-card,
.subpage-section,
.teacher-editor,
.qualification-upload-grid > *,
.service-side-card,
.knowledge-candidate,
.smart-service-main > .panel {
  border-color: var(--line);
}

@media (max-width: 1180px) {
  .workspace {
    padding: 30px 28px 64px;
  }
}

@media (max-width: 980px) {
  .app-shell {
    display: flex;
    flex-direction: column;
  }

  .sidebar {
    position: sticky;
    top: 0;
    z-index: 80;
    width: 100%;
    min-height: 0;
    padding: 14px 18px 12px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
    background: rgba(250, 248, 244, .96);
    backdrop-filter: blur(20px);
  }

  .brand {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding: 0 0 10px;
    border-bottom: 0;
  }

  .brand strong {
    margin: 0;
    font-size: 20px;
  }

  .brand small {
    margin: 0 0 0 auto;
  }

  #nav {
    margin-top: 8px;
  }

  .nav-group-tabs {
    display: flex;
    gap: 5px;
    overflow-x: auto;
    padding: 4px;
    scrollbar-width: none;
  }

  .nav-group-tabs::-webkit-scrollbar,
  .nav-view-list::-webkit-scrollbar {
    display: none;
  }

  #nav .nav-group-tab {
    min-width: 82px;
    flex: 1 0 82px;
  }

  .nav-view-list {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    margin-top: 7px;
    padding-bottom: 2px;
  }

  #nav button {
    width: auto;
    min-width: max-content;
    height: 38px;
    flex: 0 0 auto;
    padding: 0 12px;
    white-space: nowrap;
  }

  #nav button.active,
  #nav button:hover {
    box-shadow: inset 0 -2px 0 var(--gold);
  }

  .preview-switch {
    display: flex;
    width: max-content;
    align-items: center;
    margin: 8px 0 0;
    padding: 3px;
  }

  .preview-switch > span {
    padding: 0 7px 0 4px;
  }

  .preview-switch button {
    padding: 6px 11px;
  }

  .logout {
    position: absolute;
    top: 16px;
    right: 18px;
    height: 32px;
    margin: 0;
    padding: 0 11px;
    font-size: 11px;
  }

  .workspace {
    width: 100%;
    margin-left: 0;
    padding: 28px 24px 64px;
  }
}

@media (max-width: 620px) {
  .sidebar {
    padding-inline: 14px;
  }

  .brand .brand-mark {
    display: none;
  }

  .brand strong {
    font-size: 18px;
  }

  .workspace {
    padding: 22px 16px 52px;
  }

  .topbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }

  .topbar h1 {
    font-size: 31px;
  }

  .top-actions {
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
  }

  .scope-picker > input {
    width: min(58vw, 250px);
  }

  .account {
    padding-left: 12px;
  }

  .content {
    margin-top: 20px;
  }

  .panel {
    padding: 20px 16px;
  }

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

  .stat-card {
    padding: 18px 16px;
  }

  .stat-card strong {
    font-size: 29px;
  }

  .decoration-page-editor {
    grid-template-columns: 1fr;
  }

  .decoration-page-preview {
    min-height: 0;
    padding: 14px;
  }

  .decoration-page-preview .page-preview {
    min-height: 520px;
  }

  .goods-product-modal {
    top: 2cm;
    width: 98vw;
    max-height: calc(100vh - 2cm);
  }

  .goods-product-modal .course-product-layout {
    grid-template-columns: 1fr;
    min-height: 0;
    max-height: calc(100vh - 2cm - 100px);
  }

  .goods-product-modal .course-product-steps {
    display: flex;
    gap: 6px;
    overflow-x: auto;
    padding: 10px;
    border-right: 0;
    border-bottom: 1px solid #e4dfd8;
  }

  .goods-product-modal .course-product-steps button {
    min-width: 150px;
    margin: 0;
  }

  .lead-center-detail-summary {
    grid-template-columns: 1fr;
  }

  .lead-order-card {
    grid-template-columns: 1fr 1fr;
  }

  .lead-order-card > div:first-child {
    grid-column: 1 / -1;
  }

  .verify-command-card,
  .academic-verify-entry {
    grid-template-columns: 1fr;
  }

  .verify-command-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .verify-core-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .verify-quick-links {
    justify-content: flex-start;
    flex-wrap: wrap;
  }

  .verify-recent-row {
    grid-template-columns: 28px minmax(0, 1fr) auto;
  }

  .verify-recent-row time {
    display: none;
  }

  .verification-confirm-backdrop {
    align-items: end;
    padding: 0;
  }

  .verification-confirm-modal,
  .verification-success-modal {
    width: 100%;
    max-height: 78vh;
    overflow-y: auto;
    border-radius: 16px 16px 0 0;
  }

  .verification-confirm-grid {
    grid-template-columns: 1fr;
  }
}

/* Douyin-style right quick rail */
.admin-quick-rail {
  position: fixed;
  z-index: 72;
  top: 50%;
  right: 18px;
  display: grid;
  gap: 9px;
  transform: translateY(-50%);
}

.workspace {
  padding-right: 96px;
}

.quick-rail-item {
  position: relative;
  display: grid;
  width: 58px;
  min-height: 62px;
  place-items: center;
  align-content: center;
  gap: 5px;
  padding: 9px 5px 8px;
  border: 1px solid rgba(220, 210, 198, .95);
  border-radius: 10px;
  background: rgba(255, 253, 249, .94);
  color: #70655b;
  box-shadow: 0 12px 32px rgba(58, 43, 31, .1);
  backdrop-filter: blur(14px);
  transition:
    border-color .22s cubic-bezier(.25, .1, .25, 1),
    background .22s cubic-bezier(.25, .1, .25, 1),
    color .22s cubic-bezier(.25, .1, .25, 1),
    transform .22s cubic-bezier(.165, .84, .44, 1);
}

.quick-rail-item:hover,
.quick-rail-item.active {
  border-color: #28332f;
  background: #28332f;
  color: #fffaf3;
  transform: translateX(-3px);
}

.quick-rail-verify {
  border-color: #3a443f;
  background: #28332f;
  color: #fff8ef;
}

.quick-rail-verify:hover,
.quick-rail-verify.active {
  border-color: #cda77b;
  background: #9a6842;
}

.quick-rail-glyph {
  display: grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border: 1px solid currentColor;
  border-radius: 6px;
  font-family: "Songti SC", Georgia, serif;
  font-size: 13px;
  line-height: 1;
  opacity: .78;
}

.quick-rail-label {
  font-size: 10px;
  font-weight: 300;
  letter-spacing: .04em;
  line-height: 1;
  white-space: nowrap;
}

.quick-rail-badge {
  position: absolute;
  top: -7px;
  right: -7px;
  display: grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  padding: 0 5px;
  border: 2px solid var(--paper);
  border-radius: 999px;
  background: #b84a3d;
  color: #fff;
  font-size: 10px;
  line-height: 1;
}

.service-unread-inline {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  place-items: center;
  margin-left: 7px;
  padding: 0 5px;
  border-radius: 999px;
  background: #b84a3d;
  color: #fff;
  font-size: 9px;
  vertical-align: 1px;
}

.platform-message-shell {
  display: grid;
  gap: 16px;
}

.platform-message-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  min-height: 178px;
  padding: 34px 38px;
  overflow: hidden;
  border-radius: 12px;
  background:
    linear-gradient(110deg, rgba(23, 31, 29, .96), rgba(54, 70, 64, .94)),
    radial-gradient(circle at 80% 10%, rgba(201, 173, 138, .4), transparent 32%);
  color: #fff;
  position: relative;
}

.platform-message-hero::after {
  position: absolute;
  right: 9%;
  bottom: -98px;
  width: 250px;
  height: 250px;
  border: 1px solid rgba(255, 255, 255, .13);
  border-radius: 50%;
  content: "";
}

.platform-message-hero > div {
  position: relative;
  z-index: 1;
}

.platform-message-hero .eyebrow {
  color: #d5bfa5;
}

.platform-message-hero h2 {
  margin: 12px 0 10px;
  font-family: "Songti SC", Georgia, serif;
  font-size: clamp(30px, 3.1vw, 46px);
  font-weight: 400;
  letter-spacing: .05em;
}

.platform-message-hero p {
  max-width: 680px;
  margin: 0;
  color: rgba(255, 255, 255, .65);
  font-size: 13px;
  font-weight: 300;
  line-height: 1.75;
}

.platform-message-hero-actions {
  display: flex;
  flex: 0 0 auto;
  gap: 9px;
}

.platform-message-hero-actions button {
  min-width: 92px;
  border-color: rgba(255, 255, 255, .25);
  background: rgba(255, 255, 255, .1);
  color: #fff;
}

.platform-message-hero-actions .save {
  border-color: #e7d7c4;
  background: #e7d7c4;
  color: #2e2924;
}

.platform-message-summary-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.platform-message-summary-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 4px 14px;
  min-height: 112px;
  padding: 20px 22px;
  border: 1px solid #e4dbcf;
  border-radius: 10px;
  background: rgba(255, 253, 249, .82);
  color: var(--ink);
  text-align: left;
  transition: border-color .2s ease, transform .2s ease, background .2s ease;
}

.platform-message-summary-card:hover,
.platform-message-summary-card.active {
  border-color: #9f8264;
  background: #fffdf9;
  transform: translateY(-2px);
}

.platform-message-summary-card span {
  color: #6f655c;
  font-size: 13px;
}

.platform-message-summary-card strong {
  grid-row: span 2;
  font-family: Georgia, serif;
  font-size: 42px;
  font-weight: 400;
  line-height: 1;
}

.platform-message-summary-card small {
  color: #9a9086;
  font-size: 11px;
  font-weight: 300;
}

.platform-message-summary-card.static {
  cursor: default;
}

.platform-message-summary-card.static:hover {
  transform: none;
}

.platform-message-top-panel {
  padding: 18px 22px;
  border: 1px solid #e5dcd0;
  border-radius: 10px;
  background: #fffdf9;
}

.platform-message-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 12px;
  border-bottom: 1px solid #eee7de;
}

.platform-message-panel-head strong {
  font-family: "Songti SC", Georgia, serif;
  font-size: 17px;
  font-weight: 500;
}

.platform-message-panel-head button {
  border: 0;
  background: transparent;
  color: #9b7555;
  font-size: 11px;
}

.platform-message-preview-row {
  display: grid;
  grid-template-columns: minmax(160px, .55fr) minmax(260px, 1fr) auto;
  align-items: center;
  gap: 18px;
  width: 100%;
  padding: 14px 0;
  border: 0;
  border-bottom: 1px solid #f1ebe4;
  background: transparent;
  color: var(--ink);
  text-align: left;
}

.platform-message-preview-row:last-child {
  border-bottom: 0;
}

.platform-message-preview-row span {
  overflow: hidden;
  font-size: 13px;
  font-weight: 500;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.platform-message-preview-row small {
  overflow: hidden;
  color: #887e74;
  font-size: 11px;
  font-weight: 300;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.platform-message-preview-row em {
  color: #9b7555;
  font-size: 11px;
  font-style: normal;
}

.platform-message-preview-empty {
  padding: 28px 0 12px;
  color: #9b9187;
  font-size: 12px;
  text-align: center;
}

.platform-message-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 4px 2px;
}

.platform-message-groups,
.platform-message-filter-actions {
  display: flex;
  align-items: center;
  gap: 5px;
  overflow-x: auto;
}

.platform-message-groups button,
.platform-message-filter-actions button {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: max-content;
  height: 34px;
  padding: 0 13px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  color: #766d64;
  font-size: 12px;
}

.platform-message-groups button span {
  color: #a59a8e;
  font-family: Georgia, serif;
  font-size: 11px;
}

.platform-message-groups button.active,
.platform-message-filter-actions button.active {
  border-color: #2b3732;
  background: #2b3732;
  color: #fff;
}

.platform-message-groups button.active span {
  color: #d8c6b2;
}

.platform-message-search {
  display: flex;
  gap: 8px;
}

.platform-message-search input {
  flex: 1;
  min-width: 0;
  height: 40px;
  padding: 0 14px;
  border: 1px solid #ddd4c8;
  border-radius: 7px;
  background: #fffdf9;
}

.platform-message-search button {
  min-width: 74px;
  border: 1px solid #2b3732;
  border-radius: 7px;
  background: #2b3732;
  color: #fff;
}

.platform-message-search button.secondary {
  border-color: #ddd4c8;
  background: transparent;
  color: #766d64;
}

.platform-message-feed {
  overflow: hidden;
  border: 1px solid #e5ddd2;
  border-radius: 12px;
  background: rgba(255, 253, 249, .88);
}

.platform-message-card {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: 16px;
  padding: 22px 24px;
  border-bottom: 1px solid #eee7de;
  position: relative;
  transition: background .2s ease, opacity .2s ease;
}

.platform-message-card:last-child {
  border-bottom: 0;
}

.platform-message-card.unread {
  background: linear-gradient(90deg, rgba(250, 245, 237, .9), rgba(255, 253, 249, .88) 32%);
}

.platform-message-card.unread::before {
  position: absolute;
  top: 28px;
  left: 8px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #b84a3d;
  content: "";
}

.platform-message-card.read {
  opacity: .57;
}

.platform-message-card.important {
  box-shadow: inset 3px 0 0 #b98754;
}

.platform-message-kind {
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  border-radius: 10px;
  background: #f0e9df;
  color: #86664d;
  font-family: "Songti SC", Georgia, serif;
  font-size: 15px;
}

.platform-message-kind.transaction {
  background: #e9efeb;
  color: #4f695d;
}

.platform-message-kind.approval,
.platform-message-kind.other {
  background: #f4e7e3;
  color: #9a4e42;
}

.platform-message-kind.marketing {
  background: #f1eadf;
  color: #947044;
}

.platform-message-line {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #9b9187;
  font-size: 10px;
}

.platform-message-line time {
  margin-left: auto;
}

.platform-message-category,
.platform-message-important,
.platform-message-unread {
  padding: 3px 7px;
  border-radius: 999px;
  background: #f1ebe4;
  color: #776c62;
}

.platform-message-important {
  background: #f4e2dd;
  color: #9d4238;
}

.platform-message-unread {
  background: #2b3732;
  color: #fff;
}

.platform-message-copy h3 {
  margin: 10px 0 7px;
  font-family: "Songti SC", Georgia, serif;
  font-size: 18px;
  font-weight: 500;
}

.platform-message-copy p {
  margin: 0;
  color: #756b62;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.75;
}

.platform-message-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 15px;
}

.platform-message-actions button {
  min-width: 82px;
  height: 32px;
  padding: 0 13px;
  border-radius: 6px;
  font-size: 11px;
}

.platform-message-actions button.ghost {
  border-color: transparent;
  background: transparent;
  color: #8d7e71;
}

.platform-message-actions button.secondary {
  border-color: #ddd3c7;
  background: transparent;
  color: #665c53;
}

.platform-message-actions button.save {
  border-color: #2b3732;
  background: #2b3732;
  color: #fff;
}

.platform-message-settings-backdrop {
  position: fixed;
  z-index: 100;
  inset: 0;
  background: rgba(31, 28, 24, .24);
  backdrop-filter: blur(2px);
}

.platform-message-settings {
  position: fixed;
  z-index: 101;
  top: 0;
  right: 0;
  width: min(430px, 92vw);
  height: 100vh;
  padding: 28px 30px;
  overflow-y: auto;
  border-left: 1px solid #ded4c7;
  background: #fbf9f5;
  box-shadow: -25px 0 70px rgba(42, 34, 28, .16);
}

.platform-message-settings > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding-bottom: 20px;
  border-bottom: 1px solid #e9e1d7;
}

.platform-message-settings > header span,
.platform-message-settings > header strong {
  display: block;
}

.platform-message-settings > header span {
  color: #a07c5b;
  font-size: 9px;
  letter-spacing: .2em;
}

.platform-message-settings > header strong {
  margin-top: 8px;
  font-family: "Songti SC", Georgia, serif;
  font-size: 24px;
  font-weight: 500;
}

.platform-message-settings > header button {
  border: 0;
  background: transparent;
  color: #81766d;
  font-size: 11px;
}

.platform-message-settings-tabs {
  display: flex;
  gap: 22px;
  margin-top: 20px;
  border-bottom: 1px solid #e9e1d7;
}

.platform-message-settings-tabs button {
  padding: 0 0 11px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #8a8077;
  font-size: 12px;
}

.platform-message-settings-tabs button.active {
  border-bottom-color: #8b6548;
  color: #2c2621;
}

.platform-message-setting-list {
  margin-top: 10px;
}

.platform-message-setting-list label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-bottom: 1px solid #eee7de;
}

.platform-message-setting-list strong,
.platform-message-setting-list small {
  display: block;
}

.platform-message-setting-list strong {
  font-size: 13px;
  font-weight: 500;
}

.platform-message-setting-list small {
  margin-top: 5px;
  color: #9a9086;
  font-size: 10px;
  font-weight: 300;
}

.platform-switch {
  flex: 0 0 42px;
  width: 42px;
  height: 23px;
  padding: 2px;
  border: 0;
  border-radius: 999px;
  background: #d9d3cc;
  transition: background .2s ease;
}

.platform-switch::after {
  display: block;
  width: 19px;
  height: 19px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 5px rgba(38, 30, 24, .18);
  content: "";
  transition: transform .2s cubic-bezier(.25, .1, .25, 1);
}

.platform-switch.on {
  background: #8b6548;
}

.platform-switch.on::after {
  transform: translateX(19px);
}

.platform-message-subscription-note {
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid #e8dfd4;
  border-radius: 8px;
  background: #f5f0e9;
  color: #7f756b;
  font-size: 11px;
  line-height: 1.7;
}

@media (max-width: 760px) {
  .admin-quick-rail {
    right: 8px;
    gap: 6px;
  }

  .quick-rail-item {
    width: 46px;
    min-height: 48px;
    padding: 7px 4px;
  }

  .quick-rail-glyph {
    width: 25px;
    height: 25px;
    font-size: 12px;
  }

  .quick-rail-label {
    display: none;
  }

  .workspace {
    padding-right: 64px;
  }

  .campaign-editor-drawer {
    top: 1cm;
    width: 97vw;
    height: calc(100vh - 2cm);
    max-height: calc(100vh - 2cm);
  }

  .campaign-editor-layout {
    grid-template-columns: 1fr;
  }

  .campaign-builder-preview {
    border-top: 1px solid #e5ded6;
    border-left: 0;
  }

  .campaign-platform-grid {
    grid-template-columns: 1fr;
  }

  .announcement-batch-import {
    grid-template-columns: 1fr;
  }

  .scanner-gun-settings {
    grid-template-columns: 1fr;
  }

  .scanner-gun-controls {
    grid-template-columns: 1fr;
  }

  .system-settings-panel {
    top: auto;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    max-height: 78vh;
    border-radius: 16px 16px 0 0;
  }

  .account {
    min-width: 92px;
    padding-left: 10px;
  }

  .account-settings-mark {
    color: #9c7050;
  }

  .platform-message-hero {
    align-items: flex-start;
    flex-direction: column;
    padding: 28px 24px;
  }

  .platform-message-summary-grid {
    grid-template-columns: repeat(3, minmax(118px, 1fr));
    overflow-x: auto;
  }

  .platform-message-summary-card {
    min-height: 96px;
    padding: 16px;
  }

  .platform-message-summary-card strong {
    font-size: 34px;
  }

  .platform-message-toolbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .platform-message-preview-row {
    grid-template-columns: 1fr auto;
  }

  .platform-message-preview-row small {
    display: none;
  }

  .platform-message-card {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 12px;
    padding: 18px 16px;
  }

  .platform-message-kind {
    width: 34px;
    height: 34px;
    font-size: 13px;
  }

  .platform-message-actions {
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}

@media (max-width: 620px) {
  .top-actions {
    align-items: stretch;
    flex-wrap: wrap;
    gap: 10px;
  }

  .scope-picker {
    flex: 1 1 100%;
    min-width: 0;
  }

  .scope-picker > input {
    width: 100%;
    min-width: 0;
  }

  .account {
    min-width: 0;
    padding-left: 0;
    border-left: 0;
  }

  .store-filter,
  .dy-store-filter,
  .dy-filter-row,
  .dy-control,
  .dy-filter-actions {
    min-width: 0;
  }

  .dy-region-control {
    grid-template-columns: minmax(0, 1fr);
  }

  .dy-region-control > span {
    padding: 9px 0;
    border-right: 0;
    border-bottom: 1px solid #e2e2e2;
  }

  .dy-region-control select {
    width: 100%;
    border-top: 1px solid #f0ece7;
    border-left: 0;
  }

  .store-result-tabs {
    gap: 22px;
    overflow-x: auto;
  }

  .store-result-tabs button {
    flex: 0 0 auto;
    white-space: nowrap;
  }

  .store-lifecycle-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .store-lifecycle-buttons {
    justify-content: flex-start;
  }
}
