:root {
  color-scheme: light;
  --ink: #18231f;
  --muted: #6f7874;
  --line: #e3e7e5;
  --paper: #f7f8f7;
  --card: #ffffff;
  --green-950: #082b22;
  --green-900: #0d3a2e;
  --green: #126447;
  --green-600: #197454;
  --green-soft: #ebf5f0;
  --sand: #d9b879;
  --amber: #d98917;
  --red: #c3483e;
  --red-soft: #fae9e7;
}

/* User account risk governance — Product Design selected direction 2 */
body.user-risk-page .app-context-bar { display: none; }
body.user-risk-page .ops-topbar { margin-bottom: 18px; }
.user-risk-view { min-width: 0; }
.user-risk-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}
.user-risk-metrics button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  padding: 15px 18px;
  border: 1px solid #e1e7e3;
  border-radius: 11px;
  color: #1d2924;
  background: #fff;
  text-align: left;
  box-shadow: 0 4px 13px rgba(12, 52, 38, .025);
}
.user-risk-metrics button:hover,
.user-risk-metrics button.active { border-color: #a8cdbd; box-shadow: 0 6px 18px rgba(12, 86, 61, .07); }
.user-risk-metrics small,
.user-risk-metrics strong { display: block; }
.user-risk-metrics small { color: #59655f; font-size: 12px; }
.user-risk-metrics strong { margin-top: 4px; font-size: 22px; line-height: 1; letter-spacing: -.02em; }
.user-risk-metrics > button > i {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  color: #14765a;
  background: #edf7f2;
  font-size: 18px;
}
.user-risk-metrics button:last-child > i { color: #e36c26; background: #fff3e9; }
.user-risk-panel { overflow: hidden; }
.user-risk-toolbar {
  display: grid;
  grid-template-columns: minmax(230px, 1.55fr) repeat(4, minmax(120px, .76fr));
  gap: 10px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid #edf0ee;
}
.user-risk-search { position: relative; display: block; }
.user-risk-search i { position: absolute; top: 50%; left: 13px; color: #8a9590; font-size: 17px; transform: translateY(-50%); }
.user-risk-search input,
.user-risk-toolbar select {
  width: 100%;
  height: 40px;
  border: 1px solid #d9dfdc;
  border-radius: 7px;
  color: #38443e;
  background: #fff;
  outline: none;
}
.user-risk-search input { padding: 0 14px 0 39px; }
.user-risk-search input::placeholder { color: #919a96; }
.user-risk-toolbar select { padding: 0 31px 0 12px; }
.user-risk-search input:focus,
.user-risk-toolbar select:focus { border-color: #67a98f; box-shadow: 0 0 0 3px #eef7f3; }
.user-risk-tabs-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 49px;
  padding: 0 14px;
  border-bottom: 1px solid #e4e9e6;
}
.user-risk-tabs { align-self: stretch; display: flex; align-items: stretch; gap: 4px; }
.user-risk-tabs button {
  position: relative;
  min-width: 94px;
  padding: 0 12px;
  border: 0;
  color: #56625c;
  background: transparent;
  font-weight: 650;
}
.user-risk-tabs button.active { color: #0f7153; }
.user-risk-tabs button.active::after { content: ""; position: absolute; right: 10px; bottom: -1px; left: 10px; height: 2px; border-radius: 2px; background: #177a5c; }
.user-risk-tabs b { display: inline-grid; place-items: center; min-width: 18px; height: 18px; margin-left: 4px; padding: 0 5px; border-radius: 10px; color: #fff; background: #d78620; font-size: 10px; }
.user-export {
  height: 34px;
  padding: 0 12px;
  border: 1px solid #d7dedb;
  border-radius: 7px;
  color: #496057;
  background: #fff;
  font-size: 12px;
  font-weight: 600;
}
.user-export i { margin-right: 6px; font-size: 15px; }
.user-export:hover { color: #0f7153; border-color: #8bbda9; }
.user-risk-table-wrap { min-width: 0; overflow-x: auto; }
.user-risk-table { width: 100%; min-width: 1000px; border-collapse: collapse; table-layout: fixed; font-size: 11px; }
.user-risk-table th { height: 42px; padding: 0 10px; color: #5a6660; background: #fafbfa; text-align: left; font-size: 10.5px; font-weight: 650; }
.user-risk-table td { height: 63px; padding: 8px 10px; border-top: 1px solid #e8ece9; color: #35413b; vertical-align: middle; }
.user-risk-table tbody tr { transition: background .15s ease; }
.user-risk-table tbody tr:hover,
.user-risk-table tbody tr.selected { background: #f0f8f4; }
.user-risk-table th:nth-child(1) { width: 18%; }
.user-risk-table th:nth-child(2) { width: 10%; }
.user-risk-table th:nth-child(3) { width: 9%; }
.user-risk-table th:nth-child(4) { width: 13%; }
.user-risk-table th:nth-child(5) { width: 9%; }
.user-risk-table th:nth-child(6) { width: 10%; }
.user-risk-table th:nth-child(7) { width: 13%; }
.user-risk-table th:nth-child(8) { width: 9%; }
.user-risk-table th:nth-child(9) { width: 9%; }
.risk-user-cell { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 9px; }
.risk-user-cell img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.risk-user-cell strong,
.risk-user-cell small,
.user-risk-table td > strong,
.user-risk-table td > small { display: block; }
.risk-user-cell strong { overflow: hidden; color: #26322c; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.risk-user-cell small,
.user-risk-table td > small { margin-top: 2px; color: #84908a; font-size: 9.5px; }
.app-pill,
.risk-pill,
.account-pill,
.review-pill {
  display: inline-flex;
  align-items: center;
  min-height: 21px;
  padding: 0 7px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 650;
}
.app-pill { color: #17775b; background: #eaf5ef; }
.app-pill.kaban { color: #8c6534; background: #f5eee4; }
.risk-pill.high { color: #e85d2b; background: #fff0e9; }
.risk-pill.medium { color: #dc8618; background: #fff6e4; }
.risk-pill.low { color: #39785e; background: #edf6f1; }
.risk-pill b { margin-left: 4px; font-size: 11px; }
.account-pill.normal,
.review-pill.done { color: #13775a; background: #e8f5ef; }
.account-pill.restricted,
.account-pill.muted,
.review-pill.processing { color: #c97a13; background: #fff4dd; }
.account-pill.frozen { color: #9b4b46; background: #f9e9e7; }
.review-pill.pending { color: #df7e18; background: #fff2df; }
.user-risk-table .sub-risk { margin-top: 3px; color: #68746e; }
.risk-row-action { padding: 4px 0; border: 0; color: #117454; background: transparent; font-weight: 700; font-size: 11px; }
.risk-row-action:hover { text-decoration: underline; text-underline-offset: 3px; }
.user-risk-empty { display: grid; place-items: center; min-height: 320px; color: #7d8983; }
.user-risk-empty[hidden] { display: none; }
.user-risk-empty i { color: #80b6a0; font-size: 32px; }
.user-risk-empty strong { margin-top: 8px; color: #3b4741; }
.user-risk-empty span { font-size: 12px; }
.user-risk-pagination { display: flex; align-items: center; justify-content: flex-end; gap: 7px; min-height: 50px; padding: 0 14px; border-top: 1px solid #e7ebe8; color: #69756f; font-size: 11px; }
.user-risk-pagination > span:first-child { margin-right: 4px; }
.user-risk-pagination button,
.user-risk-pagination select,
.user-risk-pagination input { height: 29px; border: 1px solid #dce2df; border-radius: 6px; color: #5e6964; background: #fff; }
.user-risk-pagination button { min-width: 29px; }
.user-risk-pagination button.active { color: #fff; border-color: #14775a; background: #14775a; }
.user-risk-pagination input { width: 44px; padding: 0 8px; text-align: center; }

.user-risk-drawer {
  position: fixed;
  z-index: 46;
  inset: 0 0 0 auto;
  display: flex;
  width: min(510px, 96vw);
  flex-direction: column;
  overflow: hidden;
  color: #24302a;
  background: #fff;
  box-shadow: -18px 0 52px rgba(10, 42, 31, .14);
  transform: translateX(102%);
  transition: transform .24s ease;
}
.user-risk-drawer.open { transform: translateX(0); }
body.user-risk-page.user-risk-drawer-open .ops-content { margin-right: 510px; transition: margin-right .24s ease; }
.user-drawer-header { display: flex; align-items: center; justify-content: space-between; min-height: 50px; padding: 0 17px; border-bottom: 1px solid #e7ece9; }
.user-drawer-header h2 { margin: 0; font-size: 17px; }
.user-drawer-header button { display: grid; place-items: center; width: 32px; height: 32px; border: 0; border-radius: 7px; color: #647069; background: transparent; font-size: 17px; }
.user-drawer-header button:hover { background: #f0f5f2; }
.user-drawer-scroll { flex: 1; overflow-y: auto; padding: 12px 14px 18px; }
.user-risk-profile { display: grid; grid-template-columns: 43px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 0 1px 12px; border-bottom: 1px solid #edf0ee; }
.user-risk-profile img { width: 43px; height: 43px; border-radius: 50%; object-fit: cover; object-position: 55% 35%; }
.risk-profile-line { display: flex; align-items: center; gap: 8px; }
.risk-profile-line h3 { margin: 0; font-size: 13px; }
.risk-profile-line span { color: #ef6630; font-size: 10px; font-weight: 700; }
.user-risk-profile p { margin: 3px 0 1px; color: #52605a; font-size: 10px; }
.user-risk-profile p b { display: inline-block; width: 3px; height: 3px; margin: 0 7px 2px; border-radius: 50%; background: #99a39e; }
.user-risk-profile small { color: #7d8883; font-size: 9.5px; }
.risk-profile-time { text-align: right; }
.risk-profile-time small,
.risk-profile-time strong { display: block; }
.risk-profile-time strong { margin-top: 4px; font-size: 10px; font-weight: 500; }
.risk-drawer-section { padding: 12px 1px; border-bottom: 1px solid #edf0ee; }
.risk-drawer-section > h3,
.risk-drawer-section > header h3 { margin: 0; font-size: 12px; }
.risk-drawer-section > header { display: flex; align-items: center; justify-content: space-between; }
.risk-drawer-section > header button,
.risk-more-link { border: 0; color: #14765a; background: transparent; font-size: 9.5px; }
.risk-drawer-section > header button i,
.risk-more-link i { margin-left: 3px; }
.risk-score-grid { display: grid; grid-template-columns: .8fr 1.15fr 1fr; margin-top: 8px; border: 1px solid #e7ece9; border-radius: 7px; overflow: hidden; background: #fbfcfb; }
.risk-score-grid > div { min-height: 56px; padding: 9px 10px; border-right: 1px solid #e7ece9; }
.risk-score-grid > div:last-child { border-right: 0; }
.risk-score-grid small,
.risk-score-grid strong { display: block; }
.risk-score-grid small { color: #818c86; font-size: 9px; }
.risk-score-grid strong { margin-top: 5px; font-size: 11px; }
.risk-score-grid > div:first-child strong { color: #ec5e2b; font-size: 20px; line-height: 1; }
.risk-score-grid strong em { font-size: 9px; font-style: normal; font-weight: 500; }
.risk-evidence-chips { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.risk-evidence-chips span { min-height: 21px; padding: 3px 8px; border: 1px solid #d8e9e1; border-radius: 5px; color: #386a57; background: #f3f9f6; font-size: 9px; }
.risk-evidence-chips b { font-weight: 700; }
.risk-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin-top: 8px; }
.risk-facts div { padding: 8px; border-radius: 6px; background: #fafbfa; }
.risk-facts small,
.risk-facts strong { display: block; }
.risk-facts small { color: #808b85; font-size: 8.5px; }
.risk-facts strong { margin-top: 4px; font-size: 11px; }
.risk-facts em { color: #8a958f; font-size: 8px; font-style: normal; font-weight: 500; }
.risk-timeline { margin-top: 6px; }
.risk-timeline > div { display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 27px; border-top: 1px solid #f0f2f1; font-size: 9px; }
.risk-timeline time { color: #838e88; }
.risk-timeline p { margin: 0; }
.risk-timeline span { color: #15916b; }
.risk-timeline span.warn { color: #e06b32; }
.risk-more-link { display: block; margin: 3px auto -3px; }
.device-facts { margin: 8px 0 0; }
.device-facts div { display: grid; grid-template-columns: 82px 1fr; gap: 9px; min-height: 22px; font-size: 9.5px; }
.device-facts dt { color: #7e8983; }
.device-facts dd { margin: 0; color: #3a4640; }
.independent-statuses { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 8px; border: 1px solid #e4e9e6; border-radius: 7px; overflow: hidden; }
.independent-statuses div { min-height: 46px; padding: 9px 10px; border-right: 1px solid #e4e9e6; }
.independent-statuses div:last-child { border-right: 0; }
.independent-statuses span,
.independent-statuses strong { display: block; }
.independent-statuses span { color: #818c86; font-size: 8.5px; }
.independent-statuses strong { margin-top: 5px; color: #14775a; font-size: 10px; }
.risk-decision-form > h3 { margin-bottom: 9px; }
.risk-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.risk-decision-form label { position: relative; display: block; margin-bottom: 8px; }
.risk-decision-form label > span { display: block; margin-bottom: 5px; color: #59665f; font-size: 9px; }
.risk-decision-form select,
.risk-decision-form textarea { width: 100%; border: 1px solid #dce2df; border-radius: 6px; color: #35413b; background: #fff; outline: none; font-size: 9.5px; }
.risk-decision-form select { height: 32px; padding: 0 8px; }
.risk-decision-form textarea { resize: vertical; min-height: 52px; padding: 8px 9px 18px; line-height: 1.45; }
.risk-decision-form select:focus,
.risk-decision-form textarea:focus { border-color: #67a98f; box-shadow: 0 0 0 2px #eff7f3; }
.risk-decision-form label > small { position: absolute; right: 7px; bottom: 5px; color: #a0aaa5; font-size: 8px; }
.risk-drawer-actions { display: grid; grid-template-columns: 1.15fr 1fr .9fr 1fr; gap: 8px; min-height: 58px; padding: 10px 14px; border-top: 1px solid #e3e8e5; background: #fff; box-shadow: 0 -6px 18px rgba(16, 53, 40, .035); }
.risk-drawer-actions button { border: 1px solid #dbe1de; border-radius: 7px; color: #35413b; background: #fff; font-size: 10px; font-weight: 700; }
.risk-drawer-actions button.warning { color: #fff; border-color: #ef9a13; background: #ef9a13; }
.risk-drawer-actions button.danger { color: #fff; border-color: #e33f21; background: #e33f21; }
.risk-drawer-actions button:hover { filter: brightness(.97); }

@media (max-width: 1420px) {
  .user-risk-toolbar { grid-template-columns: minmax(220px, 1.35fr) repeat(4, minmax(108px, .7fr)); }
  body.user-risk-page.user-risk-drawer-open .ops-content { margin-right: 470px; }
  .user-risk-drawer { width: 470px; }
}
@media (max-width: 1180px) {
  .user-risk-metrics { grid-template-columns: repeat(2, 1fr); }
  .user-risk-toolbar { grid-template-columns: repeat(2, 1fr); }
  .user-risk-search { grid-column: 1 / -1; }
  body.user-risk-page.user-risk-drawer-open .ops-content { margin-right: 0; }
  .user-risk-drawer { width: min(510px, calc(100vw - 76px)); }
}
@media (max-width: 680px) {
  .user-risk-metrics { grid-template-columns: 1fr; }
  .user-risk-toolbar { grid-template-columns: 1fr; }
  .user-risk-search { grid-column: auto; }
  .user-risk-drawer { width: 100vw; }
  .risk-score-grid,
  .risk-facts,
  .independent-statuses { grid-template-columns: 1fr; }
  .risk-score-grid > div,
  .independent-statuses div { border-right: 0; border-bottom: 1px solid #e7ece9; }
  .risk-drawer-actions { grid-template-columns: 1fr 1fr; }
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid #55a585;
  outline-offset: 2px;
}

.login-screen {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  grid-template-columns: 46.1% 53.9%;
  min-height: 100vh;
  overflow: auto;
  background: #f8f9f8;
}
.login-screen[hidden] { display: none; }
.login-brand-panel {
  position: relative;
  min-height: 100vh;
  padding: 148px 54px 72px 104px;
  overflow: hidden;
  color: #f8f5ed;
  background: #082b22 url('/admin/login-brand-texture.png') center / cover no-repeat;
}
.login-brand-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: rgba(1, 27, 21, .18);
}
.login-brand-lockup,
.login-film,
.login-watermark { position: relative; z-index: 1; }
.login-brand-lockup { display: flex; align-items: center; gap: 32px; }
.login-mark {
  display: grid;
  place-items: center;
  width: 132px;
  height: 138px;
  flex: 0 0 132px;
  border-radius: 30px;
  color: #0b3026;
  background: #ddb96f;
  box-shadow: 0 14px 38px rgba(0, 0, 0, .18);
  font: 800 68px/1 "STSong", "Songti SC", serif;
}
.login-brand-lockup strong { display: block; font-size: 40px; line-height: 1.25; letter-spacing: .025em; white-space: nowrap; }
.login-brand-lockup p { margin: 16px 0 0; color: #eee8dc; font-size: 22px; letter-spacing: .04em; white-space: nowrap; }
.login-film {
  width: 222px;
  margin-top: 32px;
  padding: 0;
}
.login-film img {
  display: block;
  width: 222px;
  height: 190px;
  margin-bottom: 9px;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 10px;
  object-fit: cover;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .2);
}
.login-film img:nth-child(1) { object-position: 50% 36%; }
.login-film img:nth-child(2) { height: 201px; }
.login-film img:nth-child(3) { height: 195px; margin-bottom: 0; }
.login-watermark {
  position: absolute;
  right: 42px;
  bottom: 180px;
  color: #d7b670;
  font: 700 116px/1.1 "STSong", "Songti SC", serif;
  letter-spacing: -.18em;
  opacity: .075;
  writing-mode: vertical-rl;
  transform: rotate(12deg);
}
.login-form-panel {
  display: grid;
  place-items: center;
  min-width: 0;
  min-height: 100vh;
  padding: 56px;
  background: #fafbfa;
}
.login-card {
  width: min(548px, 100%);
  min-height: 720px;
  padding: 43px 42px 38px;
  border: 1px solid #d7dcda;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 24px 64px rgba(24, 48, 39, .07);
}
.login-eyebrow { display: flex; align-items: center; gap: 9px; color: #18845e; font-size: 15px; font-weight: 600; }
.login-eyebrow .ph { font-size: 20px; }
.login-card h1 { margin: 34px 0 8px; font-size: 38px; line-height: 1.22; letter-spacing: -.035em; }
.login-card .login-description { margin: 0 0 36px; color: #5e6864; font-size: 15px; }
.login-card > label { display: block; margin: 0 0 9px; color: #202925; font-size: 15px; font-weight: 600; }
.login-card > label:not(:first-of-type) { margin-top: 27px; }
.login-card input {
  width: 100%;
  height: 52px;
  padding: 0 15px;
  border: 1px solid #cfd5d2;
  border-radius: 8px;
  color: #1c2622;
  background: #fff;
  outline: none;
  font-size: 15px;
}
.login-card input::placeholder { color: #abb1ae; }
.login-card input:focus { border-color: #4b9c7d; box-shadow: 0 0 0 3px #eaf5f0; }
.password-field { position: relative; }
.password-field input { padding-right: 52px; }
.password-field button {
  position: absolute;
  top: 5px;
  right: 5px;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 7px;
  color: #69736e;
  background: transparent;
}
.password-field button:hover { color: var(--green); background: #f0f5f2; }
.password-field .ph { font-size: 21px; }
.login-options { display: flex; align-items: center; justify-content: space-between; margin-top: 31px; }
.remember-option { display: flex; align-items: center; gap: 10px; color: #36413c; cursor: pointer; }
.remember-option input { width: 22px; height: 22px; margin: 0; padding: 0; accent-color: var(--green); }
.forgot-password { border: 0; color: #187b59; background: transparent; font-weight: 600; }
.forgot-password:hover { text-decoration: underline; text-underline-offset: 3px; }
.login-card .login-error { margin: 12px 0 -4px; color: var(--red); font-size: 12px; font-weight: 500; }
.login-card .login-submit {
  width: 100%;
  height: 58px;
  margin-top: 28px;
  border: 0;
  border-radius: 8px;
  color: #fff;
  background: #126447;
  box-shadow: 0 8px 18px rgba(18, 100, 71, .14);
  font-size: 17px;
  font-weight: 700;
}
.login-card .login-submit:hover { background: #0f7150; }
.login-card .login-submit:disabled { cursor: wait; opacity: .6; }
.login-security-note { display: flex; align-items: center; gap: 12px; margin-top: 39px; color: #bcc4c0; }
.login-security-note::before,
.login-security-note::after { content: ""; height: 1px; flex: 1; background: #dfe3e1; }
.login-security-note .ph { font-size: 21px; }
.login-restriction { margin: 20px 0 0; color: #838c87; text-align: center; font-size: 13px; }

@media (max-width: 1180px) {
  .login-brand-panel { padding-left: 64px; }
  .login-brand-lockup { gap: 22px; }
  .login-mark { width: 106px; height: 112px; flex-basis: 106px; border-radius: 25px; font-size: 56px; }
  .login-brand-lockup strong { font-size: 31px; }
  .login-brand-lockup p { font-size: 17px; }
  .login-form-panel { padding: 42px; }
}

@media (max-width: 900px) {
  .login-screen { grid-template-columns: 40% 60%; }
  .login-brand-panel { padding: 70px 30px; }
  .login-brand-lockup { display: block; }
  .login-brand-lockup > div { margin-top: 22px; }
  .login-brand-lockup strong { white-space: normal; }
  .login-brand-lockup p { white-space: normal; }
  .login-film { width: 100%; margin-top: 50px; }
  .login-film img { width: 100%; height: 150px; }
  .login-film img:nth-child(n) { height: 150px; }
  .login-form-panel { padding: 28px; }
  .login-card { min-height: 0; padding: 36px 30px; }
}

@media (max-width: 680px) {
  .login-screen { display: block; background: #fff; }
  .login-brand-panel { min-height: 228px; padding: 36px 28px; }
  .login-brand-lockup { display: flex; }
  .login-brand-lockup > div { margin-top: 0; }
  .login-mark { width: 78px; height: 82px; flex-basis: 78px; border-radius: 19px; font-size: 42px; }
  .login-brand-lockup strong { font-size: 25px; }
  .login-brand-lockup p { margin-top: 8px; font-size: 13px; }
  .login-film, .login-watermark { display: none; }
  .login-form-panel { min-height: auto; padding: 0; }
  .login-card { width: 100%; min-height: calc(100vh - 228px); padding: 36px 26px; border: 0; border-radius: 0; box-shadow: none; }
  .login-card h1 { margin-top: 26px; font-size: 32px; }
}

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 10;
  width: 224px;
  padding: 28px 16px 20px;
  background:
    radial-gradient(circle at 15% 8%, rgba(28, 112, 82, .24), transparent 34%),
    linear-gradient(155deg, var(--green-950), #06271f 72%);
  color: #fff;
  display: flex;
  flex-direction: column;
}
.brand {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 2px;
  margin-bottom: 34px;
}
.brand-mark {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  flex: 0 0 52px;
  border-radius: 13px;
  color: #11291f;
  background: linear-gradient(145deg, #edce8e, #caa45c);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .17);
  font: 800 24px/1 "STSong", "Songti SC", serif;
}
.brand strong, .brand small { display: block; }
.brand strong { font-size: 16px; letter-spacing: .02em; white-space: nowrap; }
.brand small { margin-top: 4px; color: #9eb7ad; font-size: 12px; }
nav { display: grid; gap: 8px; }
.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  border: 0;
  border-radius: 10px;
  padding: 13px 15px;
  color: #afc2ba;
  background: transparent;
  text-align: left;
  font-weight: 600;
}
.nav-item .ph { font-size: 21px; }
.nav-item.active {
  color: #fff;
  background: linear-gradient(90deg, #0e6048, #0d5943);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.025);
}
.nav-item:disabled { cursor: not-allowed; opacity: .75; }
.nav-item[hidden], .nav-group[hidden] { display: none !important; }
.sidebar-bottom { margin-top: auto; }
.shared-note {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 15px;
  border: 1px solid rgba(118, 177, 153, .34);
  border-radius: 11px;
  color: #eef7f3;
  background: rgba(5, 42, 32, .35);
}
.shared-note > .ph { margin-top: 2px; color: var(--sand); font-size: 18px; }
.shared-note strong { font-size: 13px; }
.shared-note p { margin: 6px 0 0; color: #a3bbb1; font-size: 11px; line-height: 1.7; }
.operator {
  display: grid;
  grid-template-columns: 38px 1fr auto;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 22px;
  padding: 10px 4px;
  border: 0;
  color: #fff;
  background: transparent;
  text-align: left;
}
.operator img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
.operator strong, .operator small { display: block; }
.operator small { margin-top: 2px; color: #9eb4ab; font-size: 11px; }

.workspace {
  min-height: 100vh;
  margin-left: 224px;
  display: grid;
  grid-template-columns: minmax(680px, 1fr) 352px;
}
.content { min-width: 0; padding: 30px 22px 46px 32px; }
.topbar {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-bottom: 22px;
}
h1 { margin: 0; font-size: 27px; line-height: 1.2; letter-spacing: -.025em; }
.topbar-controls { display: flex; align-items: center; gap: 14px; }
.app-switch {
  display: flex;
  padding: 2px;
  border: 1px solid #dce1df;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(21, 53, 42, .035);
}
.app-switch button {
  min-width: 104px;
  height: 38px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #555f5b;
  font-weight: 600;
}
.app-switch button.active {
  color: #fff;
  background: linear-gradient(180deg, #187356, #0e5d44);
  box-shadow: 0 2px 6px rgba(13, 84, 62, .18);
}
.app-id { color: #7e8582; font-size: 12px; white-space: nowrap; }
.icon-button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border: 1px solid #d8ddda;
  border-radius: 8px;
  background: #fff;
  color: #2f3935;
}
.icon-button .ph { font-size: 19px; }
.icon-button.loading .ph { animation: spin .7s linear infinite; }

.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 10px 8px;
  margin-bottom: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.stats button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 38px;
  border: 0;
  border-right: 1px solid #e9ecea;
  background: transparent;
  color: #646d69;
}
.stats button:last-child { border-right: 0; }
.stats button.active { color: var(--green); font-weight: 600; }
.stats .ph { font-size: 17px; }
.stats strong { font-size: 16px; font-weight: 500; }
.pending-dot { color: #159466; font-size: 9px !important; }
.approved-dot { color: #36a978; }
.rejected-dot { color: #dc6157; }
.neutral-dot { color: #7f8a85; }

.panel {
  min-height: 584px;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
  background: #fff;
}
.toolbar {
  display: flex;
  align-items: center;
  gap: 24px;
  min-height: 62px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
}
.toolbar label { display: flex; align-items: center; gap: 10px; color: #59625e; }
.toolbar select {
  min-width: 140px;
  height: 36px;
  padding: 0 34px 0 12px;
  border: 1px solid #dde2df;
  border-radius: 7px;
  color: #37413d;
  background: #fff;
}
.reset-button {
  height: 36px;
  padding: 0 15px;
  border: 1px solid #dbe0dd;
  border-radius: 7px;
  color: #46504c;
  background: #fff;
}
.result-count { margin-left: auto; color: #8a918e; font-size: 12px; }
.feedback { margin: 12px 16px 0; padding: 10px 12px; border-radius: 7px; color: #9d5216; background: #fff3e7; }
.table-wrap { position: relative; min-height: 520px; overflow: auto; }
table { width: 100%; min-width: 810px; border-collapse: collapse; table-layout: fixed; }
th, td { padding: 14px 14px; border-bottom: 1px solid #e9ecea; text-align: left; vertical-align: middle; }
th {
  height: 48px;
  color: #737c78;
  background: #fbfcfb;
  font-size: 12px;
  font-weight: 500;
}
th:nth-child(1) { width: 24%; }
th:nth-child(2) { width: 9%; }
th:nth-child(3) { width: 18%; }
th:nth-child(4) { width: 14%; }
th:nth-child(5) { width: 12%; }
th:nth-child(6) { width: 11%; }
th:nth-child(7) { width: 12%; }
tbody tr { transition: background .18s, box-shadow .18s; }
tbody tr:hover { background: #fbfdfc; }
tbody tr.selected {
  background: #f0f7f4;
  box-shadow: inset 2px 0 var(--green-600), inset 0 0 0 1px #90c5b1;
}
.person { display: flex; align-items: center; gap: 10px; }
.person img { width: 42px; height: 42px; border-radius: 8px; object-fit: cover; background: #e8ecea; }
.person strong, .person span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.person strong { max-width: 126px; font-size: 13px; }
.person span { color: #77807c; font-size: 11px; }
.style-tag {
  display: inline-block;
  margin: 2px 3px 2px 0;
  padding: 3px 7px;
  border-radius: 5px;
  color: #53605a;
  background: #f0f2f1;
  font-size: 11px;
}
.datetime span { display: block; white-space: nowrap; }
.completeness { font-weight: 500; }
.completeness.high { color: #159466; }
.completeness.medium { color: #e38717; }
.status { display: inline-flex; align-items: center; gap: 6px; color: #69716e; font-size: 12px; white-space: nowrap; }
.status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.status-pending { color: #d58515; }
.status-approved { color: #16865e; }
.status-rejected { color: #c74d44; }
.review-link {
  min-width: 70px;
  height: 32px;
  padding: 0 10px;
  border: 1px solid #dbe0dd;
  border-radius: 7px;
  color: var(--green);
  background: #fff;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.review-link.primary-row {
  border-color: var(--green);
  color: #fff;
  background: var(--green);
}
.empty {
  display: grid;
  justify-items: center;
  align-content: center;
  min-height: 400px;
  color: #8b938f;
}
.empty[hidden] { display: none; }
.empty .ph { margin-bottom: 10px; color: #9cb6ac; font-size: 32px; }
.empty strong { color: #34413b; }
.empty span { margin-top: 3px; font-size: 12px; }
.empty button { margin-top: 16px; border: 0; color: var(--green); background: transparent; font-weight: 600; }
.loading-cell { padding: 44px 18px; color: #77817c; text-align: center; }

.review-drawer {
  position: sticky;
  top: 0;
  height: 100vh;
  border-left: 1px solid #dfe4e1;
  background: #fff;
  overflow-y: auto;
}
.drawer-empty {
  display: grid;
  justify-items: center;
  align-content: center;
  height: 100%;
  padding: 32px;
  color: #87918c;
  text-align: center;
}
.drawer-empty .ph { margin-bottom: 12px; color: #a9b9b2; font-size: 40px; }
.drawer-empty strong { color: #34403b; }
.drawer-empty span { max-width: 220px; margin-top: 5px; font-size: 12px; }
.drawer-title {
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 66px;
  padding: 0 20px;
  border-bottom: 1px solid var(--line);
  background: rgba(255, 255, 255, .96);
  backdrop-filter: blur(10px);
}
.drawer-title h2 { margin: 0; font-size: 16px; }
.drawer-title button {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 7px;
  color: #606a66;
  background: transparent;
}
.drawer-title button:hover { background: #f1f3f2; }
.drawer-title .ph { font-size: 20px; }
.applicant { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.applicant-top { display: grid; grid-template-columns: 50px 1fr auto; gap: 10px; align-items: center; }
.applicant-top img { width: 50px; height: 50px; border-radius: 8px; object-fit: cover; }
.applicant-top strong, .applicant-top small { display: block; }
.applicant-top small { margin-top: 3px; color: #737d78; }
.mini-status { align-self: start; padding: 5px 9px; border-radius: 7px; font-size: 11px; }
.mini-status.status-pending { color: #d67d09; background: #fff2de; }
.mini-status.status-approved { color: #177c59; background: #e9f5ef; }
.mini-status.status-rejected { color: #bc4b43; background: #faeae8; }
.meta-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 18px; margin-top: 14px; }
.meta-grid span, .meta-grid strong { display: block; }
.meta-grid span { margin-bottom: 4px; color: #8b928f; font-size: 10px; }
.meta-grid strong { font-size: 12px; font-weight: 500; }
.drawer-section { padding: 14px 16px; border-bottom: 1px solid var(--line); }
.drawer-section h3 { margin: 0 0 10px; font-size: 12px; }
.section-heading { display: flex; align-items: center; justify-content: space-between; }
.section-heading span { color: #848d89; font-size: 11px; }
.portfolio-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.portfolio-grid img { width: 100%; aspect-ratio: 1 / 1; border-radius: 6px; object-fit: cover; background: #e8ecea; }
.detail-block p { margin: 4px 0 11px; color: #39433f; font-size: 12px; line-height: 1.6; }
.detail-block p:last-child { margin-bottom: 0; }
.drawer-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.checklist { display: grid; gap: 7px; }
.check-item { display: grid; grid-template-columns: 16px 1fr auto; align-items: center; gap: 6px; font-size: 11px; }
.check-item .ph { color: #169565; font-size: 14px; }
.check-item > span:last-child { color: #169565; }
.audit-history { display: flex; align-items: flex-start; gap: 9px; color: #78817d; font-size: 11px; }
.audit-history .ph { margin-top: 1px; color: #9ca6a1; }
.reject-section label { display: block; margin-bottom: 8px; color: #303a36; font-size: 12px; font-weight: 600; }
.reject-section label span { color: #7f8984; font-weight: 400; }
.reject-section textarea {
  width: 100%;
  min-height: 72px;
  resize: vertical;
  padding: 10px 11px;
  border: 1px solid #dde2df;
  border-radius: 7px;
  color: #313b37;
  outline: none;
}
.reject-section textarea:focus { border-color: #4b9c7d; box-shadow: 0 0 0 3px #eaf5f0; }
.reject-section textarea.invalid { border-color: var(--red); }
.field-error { margin: 5px 0 0; color: var(--red); font-size: 11px; }
.drawer-actions {
  position: sticky;
  bottom: 0;
  z-index: 3;
  display: grid;
  grid-template-columns: 1fr 1.45fr;
  gap: 10px;
  padding: 14px 16px 18px;
  border-top: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
}
.drawer-actions button {
  height: 42px;
  border: 0;
  border-radius: 7px;
  font-weight: 600;
}
.drawer-actions .danger { color: #bd433b; background: var(--red-soft); }
.drawer-actions .primary { color: #fff; background: linear-gradient(180deg, #13825b, #0d684a); box-shadow: 0 5px 14px rgba(16, 111, 78, .18); }
.drawer-actions .ph { margin-right: 5px; }
.drawer-actions button:disabled { cursor: wait; opacity: .55; }
.toast {
  position: fixed;
  z-index: 30;
  left: 50%;
  bottom: 28px;
  transform: translateX(-50%);
  padding: 10px 16px;
  border-radius: 8px;
  color: #fff;
  background: #153c30;
  box-shadow: 0 12px 36px rgba(9, 44, 33, .24);
}
.toast[hidden] { display: none; }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 1180px) {
  .workspace { grid-template-columns: minmax(620px, 1fr) 320px; }
  .content { padding-left: 24px; }
  .app-id { display: none; }
}
@media (max-width: 980px) {
  .sidebar { width: 76px; padding-inline: 12px; }
  .brand { justify-content: center; }
  .brand-mark { width: 46px; height: 46px; flex-basis: 46px; }
  .brand > div, .nav-item span, .shared-note, .operator span, .operator > .ph { display: none; }
  .nav-item { justify-content: center; padding-inline: 0; }
  .operator { display: flex; justify-content: center; }
  .workspace { margin-left: 76px; }
}
@media (max-width: 820px) {
  .workspace { display: block; }
  .content { padding: 22px 18px 36px; }
  .review-drawer {
    position: fixed;
    z-index: 20;
    top: 0;
    right: 0;
    width: min(390px, calc(100vw - 36px));
    transform: translateX(100%);
    box-shadow: -24px 0 60px rgba(13, 45, 34, .16);
    transition: transform .24s ease;
  }
  .review-drawer.open { transform: translateX(0); }
  .topbar { align-items: flex-start; }
  .topbar-controls { flex-wrap: wrap; justify-content: flex-end; }
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stats button:nth-child(2) { border-right: 0; }
  .stats button:nth-child(-n+2) { border-bottom: 1px solid #e9ecea; }
}
@media (max-width: 620px) {
  .sidebar {
    position: relative;
    width: 100%;
    height: 68px;
    padding: 11px 16px;
    display: block;
  }
  .brand { justify-content: flex-start; margin: 0; }
  .brand > div { display: block; }
  .brand-mark { width: 44px; height: 44px; flex-basis: 44px; font-size: 20px; }
  .sidebar nav, .sidebar-bottom { display: none; }
  .workspace { margin-left: 0; }
  .topbar { display: block; }
  h1 { margin-bottom: 16px; }
  .topbar-controls { justify-content: flex-start; }
  .app-switch { width: calc(100% - 52px); }
  .app-switch button { flex: 1; min-width: 0; }
  .toolbar { gap: 10px; flex-wrap: wrap; }
  .toolbar label { flex: 1; }
  .toolbar select { min-width: 0; width: 100%; }
  .result-count { width: 100%; margin-left: 0; }
}

/* Package audit & governance workbench */
body.package-audit-page .app-context-bar { display: none; }
body.package-audit-page .works-header-create, body.package-audit-page .smart-assistant { display: none; }
.package-audit-view, .package-detail-view { min-width: 0; }
.package-stat-groups { display: grid; grid-template-columns: 1.1fr .8fr 1fr; gap: 12px; margin-bottom: 14px; }
.package-stat-groups section { overflow: hidden; border: 1px solid #dfe6e2; border-radius: 10px; background: #fff; box-shadow: 0 4px 16px rgba(12,55,39,.025); }
.package-stat-groups h2 { margin: 0; padding: 9px 14px 7px; border-bottom: 1px solid #edf0ee; color: #718079; background: #fbfcfb; font-size: 10px; font-weight: 650; }
.package-stat-groups section > div { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
.package-stat-groups button { position: relative; min-height: 63px; padding: 10px 14px; border: 0; border-right: 1px solid #edf0ee; color: #3c4943; background: #fff; text-align: left; }
.package-stat-groups button:last-child { border-right: 0; }
.package-stat-groups button:hover { background: #f3f8f5; }
.package-stat-groups button span, .package-stat-groups button strong { display: block; }
.package-stat-groups button span { font-size: 10px; }.package-stat-groups button strong { margin-top: 2px; color: #17231e; font-size: 21px; }
.package-workbench { overflow: hidden; }
.package-toolbar { display: grid; grid-template-columns: minmax(250px,1.55fr) repeat(3,minmax(132px,.75fr)) minmax(128px,.7fr) auto auto; gap: 8px; padding: 13px 14px; border-bottom: 1px solid #e7ebe9; }
.package-search { position: relative; }.package-search i { position: absolute; top: 50%; left: 12px; color: #8b9690; transform: translateY(-50%); }
.package-search input, .package-toolbar select, .package-toolbar button { width: 100%; height: 37px; border: 1px solid #d9e0dc; border-radius: 7px; color: #425049; background: #fff; font-size: 10.5px; }
.package-search input { padding: 0 12px 0 36px; }.package-toolbar select { padding: 0 27px 0 9px; }.package-more-filter { padding: 0 11px; white-space: nowrap; }.package-more-filter i { margin-right: 5px; }.package-reset { padding: 0 11px; color: #5e6b65 !important; border-color: transparent !important; background: transparent !important; }
.package-search input:focus, .package-toolbar select:focus { outline: 0; border-color: #69a78e; box-shadow: 0 0 0 3px #eef7f3; }
.package-active-filters { display: flex; min-height: 39px; align-items: center; gap: 7px; padding: 6px 14px; border-bottom: 1px solid #edf0ee; background: #fbfcfb; }
.package-active-filters > span { color: #718079; font-size: 9.5px; }.package-active-filters button { min-height: 23px; padding: 2px 7px; border: 1px solid #cfe0d8; border-radius: 5px; color: #3a6956; background: #f1f8f4; font-size: 9px; }.package-active-filters button:last-child { margin-left: auto; border-color: transparent; background: transparent; }
.package-batchbar { display: flex; min-height: 44px; align-items: center; gap: 9px; padding: 7px 14px; border-bottom: 1px solid #d8e7df; color: #305144; background: #eef7f2; font-size: 10px; }.package-batchbar button { min-height: 28px; padding: 0 10px; border: 1px solid #aacdbd; border-radius: 6px; color: #155f46; background: #fff; font-size: 9.5px; }.package-batchbar small { margin-left: auto; color: #718079; }
.package-table-wrap { overflow-x: auto; }.package-table { width: 100%; min-width: 1320px; border-collapse: collapse; table-layout: fixed; font-size: 10px; }
.package-table th { height: 39px; padding: 0 8px; color: #66736d; background: #fafbfa; text-align: left; font-size: 9px; font-weight: 650; }.package-table td { height: 67px; padding: 8px; border-top: 1px solid #e9edeb; color: #34413b; vertical-align: middle; }.package-table tbody tr:hover { background: #f7faf8; }.package-table tbody tr.high-risk-row { box-shadow: inset 3px 0 #da5d4f; }
.package-table th:nth-child(1){width:34px}.package-table th:nth-child(2){width:210px}.package-table th:nth-child(3){width:145px}.package-table th:nth-child(4){width:105px}.package-table th:nth-child(5){width:96px}.package-table th:nth-child(6){width:128px}.package-table th:nth-child(7){width:83px}.package-table th:nth-child(8){width:128px}.package-table th:nth-child(9){width:84px}.package-table th:nth-child(10){width:118px}.package-table th:nth-child(11){width:102px}
.package-primary { display: grid; width: 100%; grid-template-columns: 44px minmax(0,1fr); align-items: center; gap: 9px; padding: 0; border: 0; color: inherit; background: transparent; text-align: left; }.package-primary img { width: 44px; height: 44px; border-radius: 6px; object-fit: cover; }.package-primary strong,.package-primary small,.package-photographer strong,.package-photographer small,.package-table td > strong,.package-table td > small { display:block; }.package-primary strong { overflow:hidden; color:#24322b; text-overflow:ellipsis; white-space:nowrap; font-size:10.5px; }.package-primary small,.package-photographer small,.package-table td>small { margin-top:3px; color:#87918c; font-size:8.5px; }
.package-photographer { display:grid; grid-template-columns:28px minmax(0,1fr); align-items:center; gap:7px; }.package-photographer img { width:28px;height:28px;border-radius:50%;object-fit:cover; }.package-photographer strong { overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.package-pill { display:inline-flex; min-height:21px; align-items:center; padding:2px 7px; border:1px solid transparent; border-radius:4px; font-size:8.8px; font-weight:700; white-space:nowrap; }.package-pill.ai.passed,.package-pill.human.approved,.package-pill.publish.published,.package-pill.risk.low { color:#147354;background:#eaf5ef; }.package-pill.ai.risk,.package-pill.human.pending,.package-pill.risk.medium { color:#bd6914;background:#fff3df; }.package-pill.ai.failed,.package-pill.ai.pending,.package-pill.publish.offline,.package-pill.publish.unpublished { color:#66736d;background:#eef1ef; }.package-pill.ai.detecting { color:#2871b7;background:#eaf3fb; }.package-pill.risk.high,.package-pill.human.rejected { color:#b23f36;background:#fbeae8; }
.inline-retry { display:block;margin-top:4px;padding:0;border:0;color:#176d51;background:transparent;font-size:8.5px;text-decoration:underline;text-underline-offset:2px; }.review-owner { display:block;margin-top:4px;color:#9b6d3e;font-size:8px; }.package-row-action,.package-row-more { border:0;color:#116b4e;background:transparent;font-weight:700;font-size:9.5px; }.package-row-more { padding:4px; color:#7b8681; }.package-table time{color:#6e7974;font-size:8.5px;white-space:nowrap}.ai-progress{display:flex;align-items:center;gap:4px;margin-top:5px}.ai-progress i{position:relative;display:block;width:54px;height:3px;overflow:hidden;border-radius:3px;background:#dce7e2}.ai-progress i::after{content:"";position:absolute;inset:0 62% 0 0;background:#347fbd}.ai-progress small{color:#367bb3;font-size:7px}
.package-empty { display:grid;place-items:center;min-height:300px;color:#7a8780; }.package-empty[hidden]{display:none}.package-empty i{font-size:30px;color:#84ad9b}.package-empty strong{margin-top:7px;color:#33413a}.package-empty span{font-size:10px}.package-empty button{margin-top:10px;border:0;color:#116b4e;background:transparent;font-size:10px;font-weight:700}.package-pagination{display:flex;min-height:47px;align-items:center;justify-content:space-between;padding:0 14px;border-top:1px solid #e8ecea;color:#6c7872;font-size:9.5px}.package-pagination div{display:flex;gap:5px}.package-pagination button,.package-pagination select{height:27px;border:1px solid #dbe1de;border-radius:5px;color:#55625c;background:#fff;font-size:9px}.package-pagination button{min-width:27px}.package-pagination button.active{color:#fff;border-color:#176d51;background:#176d51}

.package-detail-header { display:flex;align-items:center;gap:16px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #dfe5e2; }.package-detail-header>button{height:34px;padding:0 10px;border:1px solid #d9e0dc;border-radius:7px;color:#4e5c55;background:#fff;font-size:10px}.package-detail-header>button i{margin-right:5px}.package-detail-header>div:nth-child(2){min-width:0;flex:1}.package-detail-header>div:nth-child(2) span,.package-detail-header>div:nth-child(2) strong{display:block}.package-detail-header>div:nth-child(2) span{color:#829089;font-size:9px}.package-detail-header>div:nth-child(2) strong{margin-top:2px;font-size:14px}.package-detail-header-actions{display:flex;gap:7px}.package-detail-header-actions button{height:32px;padding:0 10px;border:1px solid #d8dfdb;border-radius:6px;color:#45534c;background:#fff;font-size:9.5px}.package-detail-header-actions i{margin-right:5px}
.package-version-banner { display:flex;min-height:47px;align-items:center;gap:10px;margin-bottom:12px;padding:8px 13px;border:1px solid #dbc793;border-radius:8px;color:#5f553d;background:#fbf7ea; }.package-version-banner>i{font-size:20px;color:#a37b26}.package-version-banner span{flex:1;font-size:9px}.package-version-banner strong{display:block;color:#51482f;font-size:10.5px}.package-version-banner button{border:0;color:#765e23;background:transparent;font-size:9.5px;font-weight:700}.package-detail-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(420px,.82fr);align-items:start;gap:12px}.package-submission-card,.ai-review-card,.human-review-card{overflow:hidden}.package-submission-card>header{display:flex;min-height:59px;align-items:center;justify-content:space-between;padding:11px 15px;border-bottom:1px solid #e8ecea}.package-submission-card>header span,.package-submission-card>header h2{display:block;margin:0}.package-submission-card>header>div>span{color:#839089;font-size:8.5px}.package-submission-card>header h2{margin-top:2px;font-size:14px}.readonly-badge{display:inline-flex!important;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;color:#637069!important;background:#eef2f0;font-size:8.5px!important}.package-hero-content{display:grid;grid-template-columns:158px minmax(0,1fr);gap:15px;padding:15px}.package-hero-content>img{width:158px;height:118px;border-radius:8px;object-fit:cover}.package-hero-content h3{margin:3px 0 9px;font-size:18px}.package-hero-content>div>p{display:flex;align-items:center;gap:7px;margin:0 0 12px;color:#56645d;font-size:9.5px}.package-hero-content>div>p img{width:24px;height:24px;border-radius:50%;object-fit:cover}.package-keyfacts{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid #e5eae7;border-radius:7px;overflow:hidden}.package-keyfacts span{min-height:47px;padding:7px 9px;border-right:1px solid #e5eae7}.package-keyfacts span:last-child{border-right:0}.package-keyfacts small,.package-keyfacts b{display:block}.package-keyfacts small{color:#839089;font-size:8px}.package-keyfacts b{margin-top:4px;color:#2c3933;font-size:9px}.package-gallery{display:flex;gap:8px;padding:0 15px 15px}.package-gallery button{position:relative;width:82px;height:60px;padding:0;overflow:hidden;border:2px solid transparent;border-radius:6px;background:#eee}.package-gallery img{width:100%;height:100%;object-fit:cover}.package-gallery span{position:absolute;right:3px;bottom:3px;padding:1px 4px;border-radius:3px;color:#fff;background:rgba(12,43,33,.78);font-size:7.5px}.package-gallery .risk-image{border-color:#d66a33}.package-gallery .risk-image span{inset:auto 3px 3px 3px;color:#fff;background:#c9523f}.package-info-sections{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e8ecea}.package-info-sections section{padding:14px 15px;border-right:1px solid #e8ecea;border-bottom:1px solid #e8ecea}.package-info-sections section:nth-child(2n),.package-info-sections .full{border-right:0}.package-info-sections .full{grid-column:1/-1}.package-info-sections h3{margin:0 0 9px;color:#24322b;font-size:11px}.package-info-sections dl{margin:0}.package-info-sections dl div{display:grid;grid-template-columns:84px 1fr;gap:8px;padding:5px 0;border-top:1px solid #f0f2f1;font-size:9px}.package-info-sections dt{color:#7b8781}.package-info-sections dd{margin:0;color:#3e4b45}.package-info-sections ol{display:flex;gap:25px;margin:0;padding-left:20px;color:#4b5952;font-size:9px}.package-info-sections p{margin:0;color:#4b5952;font-size:9.5px;line-height:1.75}.package-info-sections mark{padding:1px 2px;color:#a53f36;background:#fde5e1;border-bottom:1px solid #d55345}
.package-review-column{display:grid;gap:12px}.ai-review-card>header,.human-review-card>header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid #e6eae8}.ai-review-card>header>div{display:flex;align-items:center;gap:9px}.ai-symbol{display:grid;place-items:center;width:33px;height:33px;border-radius:8px;color:#fff;background:#0f684b}.ai-review-card header small,.ai-review-card header h2,.human-review-card header small,.human-review-card header h2{display:block;margin:0}.ai-review-card header small,.human-review-card header small{color:#7c8982;font-size:8px}.ai-review-card header h2{margin-top:2px;color:#a84239;font-size:13px}.ai-advisory{padding:4px 7px;border-radius:4px;color:#69766f;background:#edf1ef;font-size:8px}.ai-meta{display:flex;justify-content:space-between;padding:7px 14px;color:#89948f;background:#fafbfa;font-size:7.8px}.ai-summary{margin:11px 13px;padding:10px 11px;border-left:3px solid #d45647;color:#4c5a53;background:#fdf4f2}.ai-summary strong{color:#a74036;font-size:10px}.ai-summary p{margin:4px 0 0;font-size:8.5px;line-height:1.55}.ai-issues{display:grid;gap:8px;padding:0 13px 12px}.ai-issues article{padding:9px 10px;border:1px solid #eadbd0;border-radius:7px;background:#fffdfa}.ai-issues article.high{border-color:#edccc7;background:#fffafa}.ai-issues article header{display:flex;align-items:center;gap:6px}.ai-issues article header span{padding:2px 5px;border-radius:3px;color:#aa4238;background:#fbe7e4;font-size:7.5px;font-weight:700}.ai-issues article.medium header span{color:#ad6719;background:#fff0d8}.ai-issues article header b{font-size:9.5px}.ai-issues article header button{margin-left:auto;border:0;color:#146c50;background:transparent;font-size:8px}.ai-issues blockquote{margin:7px 0;padding:6px 8px;border-left:2px solid #d65b4d;color:#8e3d35;background:#fff1ef;font-size:8.5px}.ai-issues article>p{margin:6px 0;color:#5d6963;font-size:8.3px}.ai-issues article>small{color:#6c7772;font-size:7.8px}.ai-image-evidence{display:grid;grid-template-columns:70px 1fr;gap:8px;margin-top:7px}.ai-image-evidence img{width:70px;height:48px;border-radius:4px;object-fit:cover}.ai-image-evidence p{margin:0;color:#5d6963;font-size:8.3px}.ai-review-card>footer{display:flex;justify-content:flex-end;gap:7px;padding:9px 13px;border-top:1px solid #e8ecea}.ai-review-card>footer button{height:28px;padding:0 9px;border:1px solid #d7dfdb;border-radius:5px;color:#4c5a53;background:#fff;font-size:8.5px}.human-review-card header h2{margin-top:2px;font-size:13px}.human-review-card header>span{color:#a16d29;font-size:8px}.decision-principle{display:flex;gap:6px;margin:10px 12px;padding:8px 9px;color:#68756e;background:#f5f7f6;font-size:8px}.human-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 12px 10px}.human-actions button{display:flex;min-height:58px;align-items:center;gap:8px;padding:8px 10px;border:1px solid #d8e1dc;border-radius:7px;background:#fff;text-align:left}.human-actions button>i{font-size:20px}.human-actions strong,.human-actions small{display:block}.human-actions strong{font-size:9.5px}.human-actions small{margin-top:2px;color:#849089;font-size:7.5px}.human-actions .approve{color:#176c50;border-color:#b7d4c7;background:#f4faf7}.human-actions .reject{color:#aa473d;border-color:#e4c6c2;background:#fff8f7}.secondary-actions{display:flex;justify-content:flex-end;gap:8px;padding:9px 12px;border-top:1px solid #e9edeb}.secondary-actions button{border:0;color:#57645e;background:transparent;font-size:8.5px}.secondary-actions button:last-child{color:#a7463d}
.ai-failed-state{display:grid;place-items:center;min-height:430px;padding:35px;text-align:center}.ai-failed-state>span{display:grid;place-items:center;width:50px;height:50px;border-radius:50%;color:#8a6850;background:#f2ece7;font-size:25px}.ai-failed-state h2{margin:12px 0 4px;font-size:15px}.ai-failed-state p{max-width:350px;margin:0;color:#6a7670;font-size:9px;line-height:1.7}.ai-failed-state dl{width:100%;max-width:350px;margin:16px 0;padding:8px 12px;border:1px solid #e5e8e6;border-radius:7px;background:#fafbfa;text-align:left}.ai-failed-state dl div{display:flex;justify-content:space-between;padding:4px 0;font-size:8.5px}.ai-failed-state dt{color:#828d88}.ai-failed-state dd{margin:0;font-family:monospace}.ai-failed-state button{height:31px;padding:0 12px;border:0;border-radius:6px;color:#fff;background:#126b4d;font-size:9px;font-weight:700}.ai-failed-state small{margin-top:8px;color:#87918c;font-size:8px}.ai-detecting-state>span{color:#2e78b2;background:#e8f2fa}.ai-detecting-state>strong{color:#39745e;font-size:8.5px}.detail-ai-progress{width:100%;max-width:350px;height:7px;margin:18px 0 8px;overflow:hidden;border-radius:7px;background:#e3ebe7}.detail-ai-progress i{display:block;width:38%;height:100%;border-radius:7px;background:#2678b2;animation:package-progress 1.8s ease-in-out infinite}.ai-detecting-state small{margin-top:6px}@keyframes package-progress{50%{filter:brightness(1.12)}}

.package-modal-backdrop{position:fixed;z-index:70;inset:0;background:rgba(7,31,23,.38);backdrop-filter:blur(1px)}.package-modal{position:fixed;z-index:71;top:50%;left:50%;display:flex;width:min(620px,calc(100vw - 40px));max-height:88vh;flex-direction:column;overflow:hidden;border-radius:11px;background:#fff;box-shadow:0 24px 70px rgba(5,35,25,.22);transform:translate(-50%,-50%)}.package-modal[hidden],.package-modal-backdrop[hidden]{display:none}.package-modal>header{display:flex;min-height:62px;align-items:center;justify-content:space-between;padding:10px 17px;border-bottom:1px solid #e6ebe8}.package-modal>header span,.package-modal>header h2{display:block;margin:0}.package-modal>header span{color:#84908a;font-size:8px}.package-modal>header h2{margin-top:2px;font-size:15px}.package-modal>header button{display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:6px;color:#65716b;background:transparent}.package-modal-body{overflow-y:auto;padding:17px}.package-modal>footer{display:flex;min-height:57px;align-items:center;justify-content:flex-end;gap:8px;padding:10px 17px;border-top:1px solid #e5eae7;background:#fafbfa}.package-modal>footer button{min-width:86px;height:34px;padding:0 12px;border:1px solid #d6ddda;border-radius:6px;color:#4d5953;background:#fff;font-size:9.5px;font-weight:700}.package-modal>footer .primary{color:#fff;border-color:#12694b;background:#12694b}.package-modal>footer .danger{color:#fff;border-color:#bf463c;background:#bf463c}.package-confirm-icon{display:grid;place-items:center;width:50px;height:50px;margin:0 auto 10px;border-radius:50%;font-size:26px}.package-confirm-icon.success{color:#146d50;background:#e8f5ef}.package-confirm-icon.danger{color:#b2473e;background:#fbe9e7}.modal-lead{max-width:450px;margin:0 auto 15px;color:#56635c;text-align:center;font-size:10px}.modal-lead.align-left{max-width:none;text-align:left}.modal-summary{display:grid;grid-template-columns:90px 1fr;gap:8px;padding:10px 12px;border:1px solid #e4e9e6;border-radius:7px;background:#fafbfa;font-size:9px}.modal-summary span{color:#7c8882}.package-modal-body>label{position:relative;display:block;margin-top:13px;color:#4e5b55;font-size:9px}.package-modal-body label>b,.package-modal-body legend b{color:#bd463c}.package-modal-body select,.package-modal-body textarea{width:100%;margin-top:5px;border:1px solid #d9e0dc;border-radius:6px;color:#35423c;background:#fff;outline:0;font-size:9.5px}.package-modal-body select{height:34px;padding:0 9px}.package-modal-body textarea{padding:8px 9px;resize:vertical}.package-modal-body label>small{position:absolute;right:7px;bottom:5px;color:#939d98;font-size:8px}.modal-check{display:flex!important;align-items:flex-start;gap:7px;padding:9px 10px;border-radius:6px;background:#f5f7f6}.modal-check input{margin-top:2px}.package-modal fieldset{display:grid;gap:7px;margin:13px 0 0;padding:10px 11px;border:1px solid #e1e6e3;border-radius:7px}.package-modal legend{padding:0 4px;color:#4e5b55;font-size:9px}.package-modal fieldset label{color:#536059;font-size:9px}.version-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:8px 10px;border-radius:6px;color:#4c695c;background:#eef7f2;font-size:8.5px}.version-toolbar button{border:0;color:#146b4e;background:transparent;font-size:8px}.version-columns{display:grid;grid-template-columns:1fr 1fr;border:1px solid #dfe5e2;border-radius:8px;overflow:hidden}.version-columns>section:first-child{border-right:1px solid #dfe5e2}.version-columns section>header{padding:9px 11px;background:#f6f8f7}.version-columns section>header span,.version-columns section>header strong{display:block}.version-columns section>header span{color:#7d8983;font-size:8px}.version-columns section>header strong{margin-top:2px;font-size:10px}.version-columns article{min-height:74px;padding:9px 11px;border-top:1px solid #e8ecea}.version-columns article.changed{background:#fffdf7}.version-columns article small{color:#7c8882;font-size:8px}.version-columns article small b{float:right;color:#b37419}.version-columns article p{margin:5px 0 0;color:#48554f;font-size:9px;line-height:1.55}.version-columns del{color:#9d4d46;background:#fae8e6}.version-columns ins{color:#276d51;background:#ddf2e7;text-decoration:none}.version-columns em{margin-left:5px;color:#b55e2c;font-size:8px}.audit-log-notice{padding:8px 10px;border-radius:6px;color:#68756e;background:#f2f4f3;font-size:8.5px}.package-timeline{margin-top:10px}.package-timeline article{position:relative;display:grid;grid-template-columns:12px 105px 1fr auto;gap:8px;padding:10px 0;border-top:1px solid #e9edeb}.package-timeline article>i{width:8px;height:8px;margin-top:4px;border:2px solid #98a39e;border-radius:50%;background:#fff}.package-timeline article>i.success{border-color:#238062;background:#238062}.package-timeline time{color:#7c8882;font-size:8px}.package-timeline strong{font-size:9.5px}.package-timeline p{margin:3px 0 0;color:#78847e;font-size:8px}.package-timeline article>span{color:#65716b;font-size:8px}
@media(max-width:1380px){.package-toolbar{grid-template-columns:minmax(220px,1.3fr) repeat(4,minmax(116px,.7fr)) auto}.package-more-filter{display:none}.package-detail-layout{grid-template-columns:minmax(0,1fr) minmax(390px,.82fr)}.package-keyfacts{grid-template-columns:1fr 1fr}.package-keyfacts span:nth-child(2){border-right:0}.package-keyfacts span:nth-child(-n+2){border-bottom:1px solid #e5eae7}}
@media(max-width:1120px){.package-stat-groups{grid-template-columns:1fr}.package-toolbar{grid-template-columns:1fr 1fr 1fr}.package-search{grid-column:1/-1}.package-detail-layout{grid-template-columns:1fr}.package-review-column{grid-template-columns:1fr 1fr}.ai-review-card{grid-column:1/-1}}

/* Shooting guides — selected Product Design direction 2 */
body.strategies-page { background: #f8f8f5; }
body.strategies-page .sidebar { width: 286px; padding: 28px 12px 18px; }
body.strategies-page .sidebar .brand { padding: 0 6px; margin-bottom: 32px; }
body.strategies-page .nav-group { margin: 18px 16px 8px; font-size: 11px; letter-spacing: .08em; }
body.strategies-page .nav-item { min-height: 45px; padding: 9px 17px; font-size: 15px; }
body.strategies-page .nav-item .ph { font-size: 19px; }
body.strategies-page .nav-item.active { position: relative; background: #0b7155; }
body.strategies-page .nav-item.active::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; border-radius: 4px 0 0 4px; background: #efc968; }
body.strategies-page .ops-workspace { margin-left: 286px; }
body.strategies-page .ops-content { max-width: none; min-height: 100vh; padding: 24px 31px 48px; }
body.strategies-page .ops-topbar { min-height: 105px; margin: 0; align-items: flex-start; }
body.strategies-page .page-kicker { margin: 0 0 17px; color: #59645f; font-size: 14px; font-weight: 500; letter-spacing: 0; }
body.strategies-page h1 { color: #172522; font-size: 28px; line-height: 36px; }
body.strategies-page .page-description { margin-top: 5px; color: #66716c; font-size: 14px; }
body.strategies-page .topbar-controls { padding-top: 36px; }
body.strategies-page .app-switch { display: none; }
body.strategies-page .icon-button { width: auto; height: 47px; padding: 0 16px; gap: 7px; border-radius: 8px; }
body.strategies-page .icon-button::after { content: '刷新'; font-size: 13px; }
body.strategies-page .works-header-create { display: inline-flex; height: 47px; align-items: center; gap: 8px; padding: 0 19px; border-radius: 8px; font-size: 14px; }
body.strategies-page .topbar-controls::before { content: '咔伴'; display: flex; width: 148px; height: 47px; align-items: center; padding: 0 16px; border: 1px solid #dce2df; border-radius: 8px; color: #26332e; background: #fff; font-size: 14px; }
body.strategies-page .app-context-bar { min-height: 50px; margin: 0 0 20px; padding: 0 16px; border-color: #d5e5de; border-radius: 9px; background: #f2f8f5; font-size: 13px; }
body.strategies-page .app-context-bar small { font-size: 12px; }
body.strategies-page .compact-stats { display: grid; grid-template-columns: 1.1fr .9fr; min-height: 112px; margin-bottom: 18px; padding: 0; overflow: hidden; border-radius: 10px; }
body.strategies-page .compact-stats > section { display: grid; grid-template-columns: 155px 1fr; align-items: center; min-width: 0; padding: 17px 20px; }
body.strategies-page .compact-stats > section + section { border-left: 1px solid #dee5e1; }
body.strategies-page .compact-stats h2 { display: flex; align-items: center; gap: 10px; margin: 0; color: #1e2b26; font-size: 16px; }
body.strategies-page .compact-stats h2 .ph { color: #087255; font-size: 26px; font-weight: 400; }
body.strategies-page .compact-stats section > div { display: grid; grid-template-columns: repeat(3, 1fr); }
body.strategies-page .compact-stats section:last-child > div { grid-template-columns: repeat(2, 1fr); }
body.strategies-page .compact-stats button { min-height: 68px; flex-direction: column; gap: 8px; border: 0; color: #56605c; background: transparent; }
body.strategies-page .compact-stats button span { font-size: 13px; }
body.strategies-page .compact-stats button strong { color: #172522; font-size: 22px; }
body.strategies-page #list-view > .panel { min-height: 0; overflow: visible; border-radius: 10px; box-shadow: none; }
body.strategies-page .spots-panel-heading { display: flex; min-height: 62px; align-items: center; justify-content: space-between; padding: 0 20px; border-bottom: 1px solid #dee5e1; }
body.strategies-page .spots-panel-heading > div { gap: 24px; }
body.strategies-page .spots-panel-heading h2 { font-size: 17px; }
body.strategies-page .spots-panel-heading p, body.strategies-page .spots-panel-heading > span { font-size: 12px; }
body.strategies-page .resource-toolbar { min-height: 68px; padding: 12px 17px 6px; gap: 12px; border: 0; }
body.strategies-page .search-field { min-width: 300px; height: 42px; }
body.strategies-page .search-field input { font-size: 13px; }
body.strategies-page .resource-toolbar > select { min-width: 170px; height: 42px; font-size: 12px; }
body.strategies-page .resource-toolbar .result-count, body.strategies-page .create-button, body.strategies-page #spots-category-filter { display: none; }
body.strategies-page .works-reset { display: inline-flex; height: 42px; align-items: center; padding: 0 17px; border: 1px solid #dce2df; border-radius: 7px; color: #46504c; background: #fff; font-size: 12px; }
body.strategies-page .spots-active-filters { min-height: 54px; align-items: center; gap: 11px; padding: 4px 17px 12px; color: #59645f; font-size: 12px; }
body.strategies-page .spots-active-filters:not([hidden]) { display: flex; }
body.strategies-page .table-wrap { min-height: 0; overflow-x: auto; overflow-y: visible; }
body.strategies-page .resource-table { min-width: 1080px; table-layout: fixed; }
body.strategies-page .resource-table th { height: 49px; padding: 0 16px; color: #59645f; background: #fafbfa; font-size: 12px; }
body.strategies-page .resource-table td { height: 186px; padding: 17px 16px; color: #3d4843; font-size: 12px; vertical-align: middle; }
body.strategies-page .resource-table th:nth-child(1) { width: 31%; }
body.strategies-page .resource-table th:nth-child(2) { width: 22%; }
body.strategies-page .resource-table th:nth-child(3) { width: 9%; }
body.strategies-page .resource-table th:nth-child(4) { width: 9%; }
body.strategies-page .resource-table th:nth-child(5) { width: 9%; }
body.strategies-page .resource-table th:nth-child(6) { width: 11%; }
body.strategies-page .resource-table th:nth-child(7) { width: 9%; }
body.strategies-page .resource-table tbody tr:hover, body.strategies-page .strategy-row { background: #fbfdfc; }
.strategy-primary { display: flex; width: 100%; min-width: 0; align-items: center; gap: 16px; padding: 0; border: 0; color: #172522; background: transparent; text-align: left; }
.strategy-primary img { width: 136px; height: 98px; flex: 0 0 136px; border-radius: 8px; object-fit: cover; }
.strategy-primary span { min-width: 0; }
.strategy-primary strong, .strategy-primary small, .strategy-primary em { display: block; overflow: hidden; text-overflow: ellipsis; }
.strategy-primary strong { font-size: 15px; white-space: nowrap; }
.strategy-primary small { margin-top: 8px; color: #65706b; font-size: 12px; white-space: nowrap; }
.strategy-primary em { max-width: 220px; margin-top: 13px; color: #59645f; font-size: 12px; font-style: normal; line-height: 1.65; }
.strategy-itinerary { display: grid; gap: 9px; color: #45504b; }
.strategy-itinerary p { display: grid; grid-template-columns: 25px 1fr; gap: 7px; margin: 0; line-height: 1.5; }
.strategy-itinerary b { color: #26332e; }
.strategy-itinerary small { color: #65706b; }
.strategy-data { display: grid; gap: 10px; color: #65706b; }
.strategy-data b { margin-left: 5px; color: #34413b; font-weight: 500; }
.strategy-time { color: #46514c; line-height: 1.6; }
body.strategies-page .status { min-height: 28px; padding: 0 10px; border-radius: 6px; font-size: 12px; font-weight: 600; }
body.strategies-page .status::before { display: none; }
body.strategies-page .status-approved, body.strategies-page .status-published { color: #087a57; background: #e8f5ee; }
body.strategies-page .works-pagination { display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 0 20px; color: #69736f; font-size: 12px; }
body.strategies-page .smart-assistant { position: fixed; z-index: 20; right: 20px; bottom: 15px; display: grid; width: 62px; height: 62px; place-items: center; border: 5px solid #d8ecf8; border-radius: 50%; background: #fff; box-shadow: 0 5px 15px rgba(21,53,42,.18); }
body.strategies-page .smart-assistant::after { content: '2'; position: absolute; top: -7px; right: -7px; display: grid; width: 23px; height: 23px; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #ef4545; font-size: 11px; font-weight: 700; }

@media (max-width: 1280px) {
  body.strategies-page .sidebar { width: 238px; }
  body.strategies-page .ops-workspace { margin-left: 238px; }
  body.strategies-page .ops-content { padding-inline: 22px; }
  body.strategies-page .resource-toolbar { flex-wrap: wrap; }
  body.strategies-page .search-field { min-width: 280px; }
  body.strategies-page .strategy-primary em, body.strategies-page .strategy-data { display: none; }
}

/* Unified operations console */
.sidebar { width: 252px; padding-top: 22px; }
.sidebar .brand { margin-bottom: 18px; }
.sidebar nav { flex: 1; display: block; margin: 0 -5px; padding: 0 5px 20px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.16) transparent; }
.nav-group { margin: 18px 12px 7px; color: #718f83; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.nav-item { min-height: 39px; margin-bottom: 3px; padding: 8px 12px; border-radius: 8px; font-size: 12px; }
.nav-item .ph { font-size: 17px; }
.nav-item b { min-width: 18px; margin-left: auto; padding: 2px 5px; border-radius: 10px; color: #073c2c; background: #e6c988; font-size: 9px; text-align: center; }
.sidebar-bottom .shared-note { padding: 11px 12px; }
.sidebar-bottom .operator { margin-top: 8px; }
.ops-workspace { display: block; margin-left: 252px; }
.ops-content { max-width: 1600px; min-height: 100vh; margin: 0 auto; padding: 28px 34px 54px; }
.ops-topbar { margin-bottom: 15px; }
.page-kicker { margin: 0 0 5px; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .12em; }
.page-description { margin: 6px 0 0; color: #828b87; font-size: 12px; }
.app-context-bar { display: flex; align-items: center; gap: 9px; min-height: 40px; margin-bottom: 17px; padding: 0 13px; border: 1px solid #dce6e1; border-radius: 8px; color: #486157; background: linear-gradient(90deg, #f1f8f4, #fbfcfb); font-size: 11px; }
.app-context-bar .context-dot { width: 7px; height: 7px; border-radius: 50%; background: #1b9c6c; box-shadow: 0 0 0 4px #dff2e9; }
.app-context-bar strong { color: #164f3c; }
.app-context-bar span:not(.context-dot) { color: #6f7e78; }
.app-context-bar small { margin-left: auto; color: #809089; }
.view-section[hidden] { display: none; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 12px; margin-bottom: 15px; }
.metric-card { position: relative; display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto auto; column-gap: 12px; min-height: 126px; padding: 18px; border: 1px solid var(--line); border-radius: 11px; color: #26332e; background: #fff; text-align: left; transition: transform .18s ease, box-shadow .18s ease; }
.metric-card:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(20, 61, 47, .08); }
.metric-icon { grid-row: 1 / 4; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; color: #0d684a; background: #e9f5ef; }
.metric-icon .ph { font-size: 20px; }
.metric-card small { color: #748079; font-size: 11px; }
.metric-card strong { margin-top: 5px; color: #17251f; font-size: 24px; letter-spacing: -.03em; }
.metric-card em { margin-top: 5px; color: #9ba39f; font-size: 9px; font-style: normal; }
.dashboard-grid { display: grid; grid-template-columns: minmax(520px, 1.6fr) minmax(310px, .8fr); gap: 15px; }
.dashboard-panel { min-height: 480px; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; min-height: 68px; padding: 13px 17px; border-bottom: 1px solid var(--line); }
.panel-heading span { color: #7a988c; font-size: 8px; font-weight: 800; letter-spacing: .16em; }
.panel-heading h2 { margin: 4px 0 0; font-size: 16px; }
.panel-heading small { color: #929b97; font-size: 10px; }
.text-button { border: 0; color: var(--green); background: transparent; font-size: 11px; font-weight: 700; }
.module-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--line); }
.module-card { position: relative; display: grid; grid-template-columns: 36px 1fr auto 16px; align-items: center; gap: 10px; min-height: 84px; padding: 13px 15px; border: 0; background: #fff; text-align: left; }
.module-card:hover { background: #f8fbf9; }
.module-card > .ph:first-child { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; color: #176d51; background: #edf6f2; font-size: 18px; }
.module-card strong, .module-card small { display: block; }
.module-card strong { color: #24332d; font-size: 12px; }
.module-card small { max-width: 210px; margin-top: 4px; color: #8b9691; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.module-card b { color: #547067; font-size: 12px; }
.module-card .arrow { color: #9ba9a3; font-size: 13px; }
.activity-list { padding: 7px 17px; }
.activity-item { display: grid; grid-template-columns: 30px 1fr auto; align-items: center; gap: 10px; min-height: 58px; border-bottom: 1px solid #edf0ee; }
.activity-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #16835d; background: #eaf5f0; }
.activity-item strong, .activity-item small { display: block; }
.activity-item strong { color: #34413b; font-size: 11px; font-weight: 600; }
.activity-item small { margin-top: 4px; color: #919a96; font-size: 9px; }
.activity-item > span:last-child { color: #82918b; font-size: 9px; }
.empty-line { padding: 40px 10px; color: #939d98; text-align: center; font-size: 11px; }
.compact-stats { margin-bottom: 13px; }
.compact-stats button { flex-direction: column; gap: 3px; }
.compact-stats button span { font-size: 10px; }
.compact-stats button strong { color: #1e3029; font-size: 19px; font-weight: 650; }
body.albums-page .compact-stats, body.finance-page .compact-stats { display: grid; grid-template-columns: minmax(360px, 1.4fr) 1fr; min-height: 96px; padding: 0; overflow: hidden; }
body.albums-page .compact-stats > section, body.finance-page .compact-stats > section { display: grid; align-content: center; gap: 5px; padding: 16px 18px; border-right: 1px solid #e3e9e6; }
body.albums-page .compact-stats > section h2, body.finance-page .compact-stats > section h2 { display: flex; align-items: center; gap: 7px; margin: 0; color: #244438; font-size: 12px; }
body.albums-page .compact-stats > section p, body.finance-page .compact-stats > section p { margin: 0; color: #6d7b74; font-size: 9px; line-height: 1.55; }
body.albums-page .compact-stats > div, body.finance-page .compact-stats > div { display: grid; grid-template-columns: repeat(3, 1fr); }
body.albums-page .compact-stats > div button, body.finance-page .compact-stats > div button { min-height: 96px; border: 0; border-right: 1px solid #e7ebe9; }
body.finance-page .finance-warning { color: #6b4b16; background: #fffaf0; }
body.finance-page .finance-warning h2 { color: #865c12; }
body.support-page .compact-stats { grid-template-columns: repeat(4, 1fr); }
.text-danger { color: #b54037; }
@media (max-width: 1180px) {
  body.albums-page .compact-stats, body.finance-page .compact-stats { grid-template-columns: 1fr; }
  body.albums-page .compact-stats > section, body.finance-page .compact-stats > section { border-right: 0; border-bottom: 1px solid #e3e9e6; }
}
.resource-toolbar { gap: 10px; }
.search-field { display: flex; align-items: center; flex: 1; min-width: 240px; height: 38px; padding: 0 11px; border: 1px solid #dde2df; border-radius: 7px; background: #fff; }
.search-field .ph { color: #8b9691; }
.search-field input { flex: 1; min-width: 0; border: 0; outline: 0; padding-left: 8px; background: transparent; font-size: 11px; }
.resource-toolbar > select { min-width: 128px; height: 38px; border: 1px solid #dde2df; border-radius: 7px; padding: 0 10px; color: #435049; background: #fff; font-size: 11px; }
.resource-toolbar .result-count { margin-left: 0; white-space: nowrap; }
.create-button, .primary { border: 0; border-radius: 7px; color: #fff; background: linear-gradient(180deg, #16815d, #0d674a); font-weight: 650; }
.create-button { height: 38px; padding: 0 14px; white-space: nowrap; }
.create-button .ph { margin-right: 5px; }
.resource-table th { white-space: nowrap; }
.resource-table td { max-width: 280px; }
.resource-name { display: flex; align-items: center; gap: 10px; min-width: 220px; }
.resource-icon { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 8px; color: #176e51; background: #edf6f2; }
.resource-name strong, .resource-name small { display: block; }
.resource-name strong { max-width: 210px; overflow: hidden; color: #26332e; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.resource-name small { max-width: 220px; margin-top: 4px; overflow: hidden; color: #8b9490; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.featured-star { margin-left: auto; color: #d7a538; }
.data-preview { color: #748079; font-size: 9px; line-height: 1.6; }
.status-draft { color: #6e7773; background: #eef0ef; }
.status-published { color: #147653; background: #e7f4ed; }
.status-offline { color: #9a6144; background: #f7ede7; }
.log-list { padding: 4px 22px 28px; }
.log-list .activity-item { min-height: 68px; }
.resource-drawer { position: fixed; z-index: 40; top: 0; right: 0; width: min(520px, 94vw); transform: translateX(102%); box-shadow: -24px 0 70px rgba(11, 48, 35, .18); transition: transform .24s ease; }
.resource-drawer.open { transform: translateX(0); }
.drawer-backdrop { position: fixed; z-index: 35; inset: 0; pointer-events: none; opacity: 0; background: rgba(5, 24, 18, .25); backdrop-filter: blur(2px); transition: opacity .2s ease; }
.drawer-backdrop.visible { pointer-events: auto; opacity: 1; }
.resource-editor { display: block; min-height: 100%; padding-bottom: 88px; }
.resource-editor > label, .resource-editor > .form-grid { margin: 14px 18px; }
.resource-editor label { display: grid; gap: 7px; color: #4b5852; font-size: 10px; font-weight: 700; }
.resource-editor input:not([type="checkbox"]), .resource-editor textarea, .resource-editor select { width: 100%; min-height: 39px; padding: 9px 11px; border: 1px solid #dce2df; border-radius: 7px; color: #26332e; background: #fff; outline: none; font: inherit; font-weight: 400; resize: vertical; }
.resource-editor input:focus, .resource-editor textarea:focus, .resource-editor select:focus { border-color: #4a9a7b; box-shadow: 0 0 0 3px #eaf5f0; }
.drawer-eyebrow { display: block; margin-bottom: 3px; color: #20805f; font-size: 8px; font-weight: 800; letter-spacing: .12em; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-grid label { margin: 0; }
.switch-label { align-content: center; grid-template-columns: 1fr 42px; }
.switch-label input { position: absolute; opacity: 0; }
.switch-label span { position: relative; width: 40px; height: 23px; border-radius: 20px; background: #d9dfdc; }
.switch-label span::after { content: ''; position: absolute; top: 3px; left: 3px; width: 17px; height: 17px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px #8a9690; transition: transform .18s; }
.switch-label input:checked + span { background: #16805c; }
.switch-label input:checked + span::after { transform: translateX(17px); }
.field-list { display: grid; gap: 8px; }
.data-field { display: grid; grid-template-columns: 118px 1fr 30px; gap: 7px; align-items: start; }
.data-field .field-key, .data-field .field-value { min-height: 36px; padding: 8px 9px; font-size: 10px; }
.remove-field { display: grid; place-items: center; width: 30px; height: 34px; border: 0; border-radius: 6px; color: #aa554d; background: #f9ecea; }
.editor-hint { display: flex; gap: 7px; margin: 13px 18px; padding: 10px; border-radius: 7px; color: #707c76; background: #f4f7f5; font-size: 9px; line-height: 1.6; }
.editor-actions { grid-template-columns: auto 1fr 1fr 1.1fr; }
.editor-actions .secondary { color: #27634f; background: #e9f4ef; }
.ghost-danger { padding-inline: 13px; }
body.drawer-open { overflow: hidden; }

/* 套餐审核：参考高保真审核工作台 */
.resource-drawer.package-review-mode { width: min(930px, calc(100vw - 255px)); overflow: hidden; background: #fff; box-shadow: -18px 0 55px rgba(7, 35, 26, .16); }
body:has(.resource-drawer.package-review-mode.open) .drawer-backdrop { background: rgba(12, 28, 22, .43); backdrop-filter: blur(3px); }
.package-review-drawer { display: flex; height: 100vh; flex-direction: column; color: #24312c; background: #fff; }
.package-review-header { display: flex; min-height: 104px; flex: 0 0 104px; align-items: flex-start; justify-content: space-between; padding: 17px 25px 12px; border-bottom: 1px solid #e2e7e4; }
.package-review-header > div:first-child > span { display: block; color: #0c805b; font-size: 10px; font-weight: 800; }
.package-review-header h2 { margin: 6px 0 8px; color: #14211c; font-size: 20px; line-height: 1.2; }
.package-review-header p { display: flex; align-items: center; gap: 8px; margin: 0; color: #65716b; font-size: 10px; }
.package-review-header p img { width: 21px; height: 21px; border-radius: 50%; object-fit: cover; }
.package-review-header p b { color: #3d4a44; font-weight: 600; }
.package-review-header p > i { width: 1px; height: 12px; background: #d8deda; }
.package-review-header p em { margin-left: 5px; padding: 4px 9px; border: 1px solid #f2c981; border-radius: 6px; color: #d7870a; background: #fff7e8; font-style: normal; font-weight: 700; }
.package-header-actions { display: flex; align-items: center; gap: 10px; }
.package-header-actions button { display: grid; place-items: center; width: 35px; height: 35px; border: 1px solid transparent; border-radius: 7px; color: #35423c; background: #fff; font-size: 18px; }
.package-header-actions button:first-child { border-color: #dde3df; }
.package-header-actions button:hover { background: #f3f6f4; }
.package-review-tabs { display: flex; min-height: 49px; flex: 0 0 49px; gap: 27px; padding: 0 25px; border-bottom: 1px solid #e3e8e5; }
.package-review-tabs button { position: relative; border: 0; color: #47534d; background: transparent; font-size: 11px; font-weight: 700; }
.package-review-tabs button.active { color: #087754; }
.package-review-tabs button.active::after { content: ''; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #0c8a62; }
.package-review-layout { display: grid; flex: 1; min-height: 0; grid-template-columns: minmax(0, 1fr) 305px; }
.package-review-main, .package-review-history-panel { min-width: 0; overflow: auto; padding: 25px 25px 30px; }
.package-summary-card { display: grid; grid-template-columns: 108px repeat(5, 1fr); align-items: center; min-height: 122px; padding: 12px; border: 1px solid #dde4e0; border-radius: 8px; }
.package-summary-card > img { width: 92px; height: 92px; border-radius: 7px; object-fit: cover; }
.package-summary-card > div { min-width: 0; padding: 0 14px; border-left: 1px solid #e3e8e5; }
.package-summary-card small, .package-summary-card strong { display: block; }
.package-summary-card small { margin-bottom: 9px; color: #75807a; font-size: 9px; }
.package-summary-card strong { color: #15221d; font-size: 17px; white-space: nowrap; }
.package-read-section { padding: 20px 0 15px; border-bottom: 1px solid #dfe5e1; }
.package-read-section header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; border-bottom: 1px solid #e1e6e3; }
.package-read-section h3 { margin: 0; color: #17231e; font-size: 13px; }
.package-read-section header button { border: 0; color: #3e4b45; background: transparent; font-size: 10px; }
.package-read-section header button i { margin-right: 5px; }
.package-read-section dl { display: grid; grid-template-columns: 80px 1fr; gap: 10px 12px; margin: 14px 0 0; color: #3e4944; font-size: 10px; }
.package-read-section dt { color: #4f5b55; }
.package-read-section dd { margin: 0; }
.package-read-section dd > span { display: inline-block; margin-right: 7px; padding: 4px 9px; border: 1px solid #dce3df; border-radius: 5px; background: #fafcfb; }
.package-person { display: flex; align-items: center; gap: 7px; }
.package-person img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; }
.package-review-workspace { overflow: auto; border-left: 1px solid #dfe5e1; background: #fff; }
.package-review-workspace > section { padding: 20px 20px 19px; border-bottom: 1px solid #e2e7e4; }
.package-review-workspace h3 { margin: 0 0 16px; color: #17231e; font-size: 13px; }
.package-completeness { display: flex; justify-content: space-between; color: #5f6c65; font-size: 9px; }
.package-completeness b { color: #34413b; }
.package-progress { height: 4px; margin: 9px 0 16px; overflow: hidden; border-radius: 5px; background: #e5eae7; }
.package-progress i { display: block; width: 92%; height: 100%; background: #0b8b62; }
.package-checks { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; color: #3d4943; font-size: 10px; }
.package-checks i { display: inline-grid; place-items: center; width: 15px; height: 15px; margin-right: 9px; border-radius: 50%; color: #fff; background: #0d8b63; font-size: 9px; }
.package-checks .warning i { background: #e9a11e; }
.package-decisions { display: grid; gap: 7px; }
.package-decisions button, .package-publish-options button { display: flex; align-items: center; gap: 10px; min-height: 47px; padding: 8px 10px; border: 1px solid #dce2df; border-radius: 7px; color: #3b4842; text-align: left; background: #fff; }
.package-decisions button.active, .package-publish-options button.active { border-color: #168a66; background: #f5fbf8; }
.package-decisions button > i, .package-publish-options button > i { width: 14px; height: 14px; flex: 0 0 14px; border: 1px solid #cdd5d1; border-radius: 50%; }
.package-decisions button.active > i, .package-publish-options button.active > i { border: 4px solid #168a66; }
.package-decisions span, .package-publish-options span { display: grid; gap: 3px; }
.package-decisions b, .package-publish-options b { font-size: 10px; }
.package-decisions small, .package-publish-options small { color: #86908b; font-size: 8px; }
.package-review-workspace h4 { margin: 14px 0 8px; color: #4d5953; font-size: 9px; }
.package-publish-options { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.package-review-workspace label { position: relative; display: grid; gap: 7px; margin-top: 14px; color: #4b5751; font-size: 9px; font-weight: 700; }
.package-review-workspace textarea { width: 100%; min-height: 56px; padding: 9px; border: 1px solid #dce2df; border-radius: 7px; color: #35413b; resize: none; outline: none; font: inherit; font-weight: 400; }
.package-review-workspace label > small { position: absolute; right: 8px; bottom: 7px; color: #9aa39e; font-weight: 400; }
.package-mini-timeline, .package-full-timeline { display: grid; gap: 17px; }
.package-mini-timeline > div, .package-full-timeline > div { position: relative; display: flex; gap: 10px; }
.package-mini-timeline > div > i, .package-full-timeline > div > i { display: grid; z-index: 1; place-items: center; width: 16px; height: 16px; flex: 0 0 16px; border: 4px solid #0c805b; border-radius: 50%; color: #fff; background: #fff; font-size: 8px; }
.package-mini-timeline > div:first-child > i, .package-full-timeline > div:first-child > i { border: 0; background: #0c805b; }
.package-mini-timeline > div:first-child::after, .package-full-timeline > div:first-child::after { content: ''; position: absolute; top: 15px; left: 7px; width: 1px; height: 29px; background: #cdd9d3; }
.package-mini-timeline p, .package-full-timeline p { display: grid; gap: 4px; margin: 0; }
.package-mini-timeline b, .package-full-timeline b, .package-full-timeline strong { font-size: 9px; }
.package-mini-timeline span, .package-full-timeline span { color: #7f8a84; font-size: 8px; }
.package-review-history-panel h3 { margin: 0 0 22px; font-size: 14px; }
.package-review-actions { display: flex; min-height: 72px; flex: 0 0 72px; align-items: center; justify-content: space-between; padding: 12px 25px; border-top: 1px solid #dfe5e1; background: #fff; }
.package-review-actions > div { display: flex; gap: 12px; }
.package-review-actions button { height: 41px; padding: 0 28px; border: 1px solid #d8e0dc; border-radius: 7px; color: #116d51; background: #fff; font-size: 11px; font-weight: 700; }
.package-review-actions .package-delete { padding: 0; border: 0; color: #e24031; }
.package-review-actions .primary { min-width: 290px; border-color: #0d7c59; color: #fff; background: #0d7c59; }
@media (max-width: 1050px) { .resource-drawer.package-review-mode { width: 94vw; } .package-review-layout { grid-template-columns: minmax(0, 1fr) 275px; } .package-summary-card { grid-template-columns: 86px repeat(5, 1fr); } .package-summary-card > img { width: 72px; height: 72px; } }

/* 拍摄指南：高密度运营抽屉 */
.resource-drawer.strategy-mode { width: min(660px, calc(100vw - 350px)); overflow: hidden; background: #fff; box-shadow: -18px 0 52px rgba(8, 31, 23, .15); }
body:has(.resource-drawer.strategy-mode.open) .drawer-backdrop { background: rgba(11, 25, 20, .42); backdrop-filter: blur(3px); }
.strategy-mode .resource-editor { display: flex; height: 100vh; min-height: 0; flex-direction: column; padding: 0; }
.strategy-mode .drawer-title { min-height: 84px; flex: 0 0 84px; padding: 16px 26px 13px; border-bottom: 1px solid #e1e7e3; background: #fff; }
.strategy-mode .drawer-title h2 { margin: 2px 0 0; color: #17241f; font-size: 20px; line-height: 1.2; letter-spacing: -.02em; }
.strategy-mode .drawer-title > button { width: 34px; height: 34px; color: #39463f; font-size: 19px; }
.strategy-mode .drawer-eyebrow { margin: 0 0 5px; color: #0d7452; font-size: 10px; letter-spacing: .04em; }
.drawer-title-line { display: flex; align-items: center; gap: 12px; }
.strategy-title-helper { display: block; margin-top: 5px; color: #7a857f; font-size: 10px; line-height: 1.2; }
.strategy-unsaved { display: inline-flex; align-items: center; gap: 7px; color: #707b75; font-size: 10px; font-weight: 500; }
.strategy-unsaved i { width: 7px; height: 7px; border-radius: 50%; background: #14906a; }
.generic-resource-fields[hidden], .strategy-editor-fields[hidden], .editor-actions[hidden], .strategy-drawer-actions[hidden] { display: none !important; }
.strategy-editor-fields { flex: 1; min-height: 0; overflow: auto; padding: 0 26px; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #ccd7d1 transparent; }
.strategy-form-section { padding: 11px 0 12px; border-bottom: 1px solid #e4e9e6; }
.strategy-form-section:last-child { border-bottom: 0; }
.strategy-form-section > h3, .strategy-form-section > header h3 { margin: 0; color: #233029; font-size: 13px; line-height: 1.3; }
.strategy-form-section > header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.strategy-form-section > header p { margin: 0; color: #7b8680; font-size: 9px; }
.strategy-form-section > label { margin-top: 10px; }
.strategy-mode .strategy-form-section label { display: grid; gap: 6px; color: #37443e; font-size: 10px; font-weight: 700; }
.strategy-form-section label > b { margin-left: 2px; color: #dd594c; }
.strategy-mode .strategy-form-section input:not([type="checkbox"]), .strategy-mode .strategy-form-section textarea, .strategy-mode .strategy-form-section select { min-height: 38px; padding: 8px 10px; border: 1px solid #d5ded9; border-radius: 6px; color: #25322c; background: #fff; font-size: 10px; font-weight: 450; }
.strategy-mode .strategy-form-section textarea { min-height: 54px; line-height: 1.5; }
.strategy-mode .strategy-form-section input:focus, .strategy-mode .strategy-form-section textarea:focus, .strategy-mode .strategy-form-section select:focus { border-color: #198262; box-shadow: 0 0 0 2px rgba(25, 130, 98, .09); }
.strategy-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 10px; }
.strategy-summary-label { position: relative; }
.strategy-summary-label small { position: absolute; right: 10px; bottom: 8px; color: #8e9893; font-size: 8px; font-weight: 500; }
.strategy-summary-label textarea { padding-right: 48px !important; }
.strategy-cover-row { display: flex; align-items: center; gap: 18px; margin-top: 7px; }
.strategy-cover-upload { display: inline-flex; width: 150px; height: 56px; align-items: center; justify-content: center; gap: 8px; border: 1px dashed #bdc9c3; border-radius: 6px; color: #394740; background: #fbfcfb; font-size: 10px; font-weight: 650; }
.strategy-cover-upload:hover { border-color: #278265; color: #12694d; background: #f5faf7; }
.strategy-cover-upload .ph { color: #6e7a74; font-size: 18px; }
.strategy-cover-row p { margin: 0; color: #66726c; font-size: 9px; line-height: 1.65; }
.strategy-cover-row p small { color: #8a948f; font-size: 8px; }
.strategy-itinerary-editor { padding-top: 11px; }
#strategy-days { overflow: hidden; border: 1px solid #dbe2de; border-radius: 6px; }
.strategy-day { display: grid; grid-template-columns: 18px 54px minmax(0, 1fr) 92px 24px 24px; min-height: 52px; align-items: center; gap: 8px; padding: 6px 9px; border-bottom: 1px solid #e1e6e3; background: #fff; }
.strategy-day:last-child { border-bottom: 0; }
.strategy-day > .ph-dots-six-vertical { color: #78847e; font-size: 16px; cursor: grab; }
.strategy-day > b { color: #2d3933; font-size: 10px; white-space: nowrap; }
.strategy-day label { gap: 2px !important; }
.strategy-day label small { overflow: hidden; color: #89938e; font-size: 7.5px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.strategy-mode .strategy-day input { min-height: 31px !important; height: 31px; padding: 6px 8px !important; }
.strategy-day-duration { text-align: center; }
.strategy-day-more, .strategy-day-remove { display: grid; width: 24px; height: 28px; place-items: center; border: 0; border-radius: 5px; background: transparent; }
.strategy-day-more { color: #435049; }
.strategy-day-remove { color: #e45248; }
.strategy-day-more:hover { background: #f1f4f2; }
.strategy-day-remove:hover { background: #fff0ee; }
.strategy-add-day { display: inline-flex; height: 31px; align-items: center; gap: 5px; margin-top: 7px; padding: 0 11px; border: 1px solid #248162; border-radius: 6px; color: #126b4f; background: #fff; font-size: 9px; font-weight: 650; }
.strategy-add-day:hover { background: #f2f8f5; }
.strategy-publish-section { padding-bottom: 12px; }
.strategy-publish-section > h3 { margin-bottom: 8px; }
.strategy-publish-section .strategy-form-grid { margin-top: 7px; }
.strategy-publish-section label > small { color: #89938e; font-size: 7.5px; font-weight: 450; }
.strategy-featured-label { grid-template-columns: 1fr auto; align-content: center; align-items: center; }
.strategy-featured-label > small { grid-column: 1 / -1; }
.strategy-switch { position: relative; display: inline-flex; width: 38px; height: 22px; }
.strategy-switch input { position: absolute; opacity: 0; pointer-events: none; }
.strategy-switch i { position: relative; width: 38px; height: 22px; border-radius: 20px; background: #d7dfdb; transition: .18s; }
.strategy-switch i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(23, 43, 34, .28); transition: .18s; }
.strategy-switch input:checked + i { background: #167957; }
.strategy-switch input:checked + i::after { transform: translateX(16px); }
.strategy-review-tag { display: inline-flex; width: max-content; height: 26px; align-items: center; padding: 0 10px; border-radius: 5px; color: #d46f20; background: #fff1e6; font-size: 9px; font-weight: 650; }
.strategy-submit-hint { display: flex; min-height: 30px; align-items: center; gap: 6px; margin: 9px 0 0; padding: 7px 9px; border-radius: 6px; color: #29725b; background: #eef7f3; font-size: 8px; line-height: 1.4; }
.strategy-submit-hint .ph { color: #16815d; font-size: 12px; }
.strategy-drawer-actions { display: flex; min-height: 73px; flex: 0 0 73px; align-items: center; justify-content: space-between; padding: 12px 26px; border-top: 1px solid #dfe6e2; background: #fff; box-shadow: 0 -8px 22px rgba(18, 42, 33, .035); }
.strategy-drawer-actions > div { display: flex; gap: 12px; }
.strategy-drawer-actions button { height: 40px; border-radius: 6px; padding: 0 20px; font-size: 11px; font-weight: 700; }
.strategy-cancel { border: 0; color: #344139; background: transparent; }
.strategy-cancel:hover { background: #f4f7f5; }
.strategy-save-draft { border: 1px solid #268363; color: #126b4f; background: #fff; }
.strategy-save-draft:hover { background: #f2f8f5; }
.strategy-submit { min-width: 143px; border: 1px solid #0d7452; color: #fff; background: #0c7653; box-shadow: 0 7px 15px rgba(12, 118, 83, .12); }
.strategy-submit:hover { background: #096747; }
.strategy-drawer-actions button:disabled { cursor: not-allowed; opacity: .45; }

@media (max-width: 1080px) {
  .resource-drawer.strategy-mode { width: min(660px, calc(100vw - 76px)); }
}
@media (max-width: 680px) {
  .resource-drawer.strategy-mode { width: 100vw; }
  .strategy-mode .drawer-title, .strategy-editor-fields, .strategy-drawer-actions { padding-inline: 18px; }
  .strategy-form-grid { grid-template-columns: 1fr; }
  .strategy-day { grid-template-columns: 16px 50px minmax(0, 1fr) 22px; }
  .strategy-day-duration, .strategy-day-more { display: none; }
}

@media (max-width: 1180px) {
  .sidebar { width: 218px; }
  .ops-workspace { margin-left: 218px; }
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .sidebar { width: 76px; }
  .ops-workspace { margin-left: 76px; }
  .nav-group { display: none; }
  .ops-content { padding: 22px 18px 40px; }
  .resource-drawer { width: min(520px, calc(100vw - 30px)); }
}
@media (max-width: 620px) {
  .sidebar { width: 100%; }
  .ops-workspace { margin-left: 0; }
  .metric-grid { grid-template-columns: 1fr 1fr; }
  .module-grid { grid-template-columns: 1fr; }
  .app-context-bar small { display: none; }
  .resource-toolbar { align-items: stretch; }
  .search-field { min-width: 100%; }
  .resource-toolbar > select { flex: 1; }
  .create-button { width: 100%; }
  .editor-actions { grid-template-columns: 1fr 1fr; }
}

/* Photographer evidence review workspace — selected Product Design direction 2 */
.photographer-review[hidden] { display: none; }
.resource-editor[hidden] { display: none; }
.resource-drawer.photographer-mode {
  width: min(1150px, calc(100vw - 320px));
  overflow: hidden;
  background: #fff;
}

/* Order records + AI exception review — selected Product Design direction 1 */
.order-records-mode { color: #23312b; }
body:has(.order-records-mode:not([hidden])) .sidebar { width: 280px; }
body:has(.order-records-mode:not([hidden])) .ops-workspace { margin-left: 280px; }
body:has(.order-records-mode:not([hidden])) .ops-content { max-width: none; padding: 24px 30px 44px; }
body:has(.order-records-mode:not([hidden])) .app-context-bar { display: none; }
.order-records-mode .compact-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  min-height: 102px;
  margin-bottom: 16px;
  border: 0;
  background: transparent;
}
.order-records-mode .compact-stats button {
  position: relative;
  display: grid;
  grid-template-columns: 38px auto;
  grid-template-rows: auto auto;
  justify-content: center;
  align-content: center;
  column-gap: 12px;
  min-width: 0;
  padding: 14px 20px;
  border: 1px solid #dfe4e1;
  border-radius: 9px;
  color: #67736d;
  background: #fff;
  text-align: left;
}
.order-records-mode .compact-stats button:hover { background: #fbfdfc; }
.order-stat-icon { grid-row: 1 / 3; display: grid; place-items: center; width: 38px; height: 38px; color: #252f2b; background: transparent; }
.order-stat-icon .ph { font-size: 31px; }
.order-records-mode .compact-stats button:nth-child(2) .order-stat-icon,
.order-records-mode .compact-stats button:nth-child(2) strong { color: #0c7653; }
.order-records-mode .compact-stats button:nth-child(3) .order-stat-icon,
.order-records-mode .compact-stats button:nth-child(3) strong { color: #e95f08; }
.order-records-mode .compact-stats button:nth-child(4) .order-stat-icon,
.order-records-mode .compact-stats button:nth-child(4) strong { color: #e95f08; }
.order-records-mode .compact-stats button span:not(.order-stat-icon) { align-self: end; font-size: 11px; }
.order-records-mode .compact-stats button strong { align-self: start; color: #17251f; font-size: 22px; font-weight: 700; }
.order-records-mode > .panel { overflow: hidden; box-shadow: none; }
.order-records-mode .resource-toolbar { min-height: 68px; padding: 14px 18px; flex-wrap: nowrap; border-bottom: 1px solid #e5e9e7; }
.order-records-mode .search-field { min-width: 240px; height: 40px; }
.order-records-mode .resource-toolbar > select { min-width: 126px; height: 40px; }
.order-date { display: flex; align-items: center; gap: 5px; min-width: 238px; height: 40px; padding: 0 9px; border: 1px solid #dde2df; border-radius: 7px; color: #77817c; background: #fff; }
.order-date[hidden] { display: none; }
.order-date input { width: 92px; padding: 0; border: 0; color: #56625c; background: transparent; outline: 0; font-size: 10px; }
.order-date span { font-size: 9px; }
.order-reset { height: 40px; padding: 0 12px; border: 1px solid #dce1df; border-radius: 7px; color: #52605a; background: #fff; font-size: 10px; }
.order-records-mode .result-count { margin-left: auto; color: #7e8983; font-size: 10px; }
.kaban-trade-stat { display: flex; min-width: 0; align-items: center; gap: 12px; padding: 18px 20px; border-right: 1px solid #e6eae8; background: #fff; }
.kaban-trade-stat:last-child { border-right: 0; }
.kaban-trade-stat > i { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 9px; color: #126d50; background: #eaf5f0; font-size: 17px; }
.kaban-trade-stat span,.kaban-trade-stat small,.kaban-trade-stat strong,.kaban-trade-stat em { display: block; min-width: 0; }
.kaban-trade-stat small { color: #748079; font-size: 9px; }
.kaban-trade-stat strong { margin-top: 4px; color: #1e3028; font-size: 17px; }
.kaban-trade-stat em { margin-top: 3px; overflow: hidden; color: #909a95; font-size: 8px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.order-records-mode .table-wrap { min-height: 520px; overflow-x: auto; }
.order-records-mode .resource-table { min-width: 1180px; table-layout: auto; }
.order-records-mode .resource-table th { height: 58px; padding: 0 17px; color: #67736d; background: #fbfcfb; font-size: 10px; font-weight: 650; }
.order-records-mode .resource-table td { height: 84px; padding: 13px 17px; max-width: 230px; border-bottom-color: #e8ecea; color: #34413b; font-size: 10px; vertical-align: middle; }
.order-records-mode .resource-table td strong,
.order-records-mode .resource-table td small { display: block; }
.order-records-mode .resource-table td > strong { color: #26332e; font-size: 10px; font-weight: 600; }
.order-records-mode .resource-table td small { margin-top: 5px; color: #87918c; font-size: 8px; line-height: 1.45; }
.order-row.risk-attention { background: #fffaf2; box-shadow: inset 3px 0 #e58c1a; }
.order-row.risk-handling { background: #fffafa; box-shadow: inset 3px 0 #b85b52; }
.order-primary { display: flex; align-items: center; gap: 10px; min-width: 180px; }
.order-primary > span { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 8px; color: #156c4e; background: #edf6f2; }
.order-primary strong { color: #1f2d27; font-size: 11px; }
.order-primary small { max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fulfillment-badge { display: inline-flex; align-items: center; gap: 6px; color: #4d5b54; font-size: 9px; font-weight: 650; white-space: nowrap; }
.fulfillment-badge i { width: 6px; height: 6px; border-radius: 50%; background: #169568; }
.fulfillment-badge.pending i { background: #d49731; }
.fulfillment-badge.completed i { background: #658077; }
.order-amount { color: #23332c !important; font-size: 11px !important; font-weight: 700; white-space: nowrap; }
.ai-risk { display: inline-flex; align-items: center; gap: 5px; min-height: 23px; padding: 0 7px; border-radius: 5px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.ai-risk.normal { color: #157453; background: #eaf5f0; }
.ai-risk.attention { color: #a95e0b; background: #fff0d8; }
.ai-risk.handling { color: #9c4d46; background: #f8e9e7; }
.ai-risk .ph { font-size: 12px; }
.order-view-button { min-width: 54px; height: 30px; border: 1px solid #cfd7d3; border-radius: 6px; color: #176c50; background: #fff; font-size: 9px; font-weight: 650; }
.order-view-button:hover { border-color: #5f9d84; background: #f5faf7; }
.environment-badge { display: inline-flex; align-items: center; min-height: 21px; padding: 0 7px; border-radius: 4px; font-size: 8px; font-weight: 750; letter-spacing: .04em; }
.environment-badge.sandbox { color: #7b5b10; background: #fff4d7; }
.kaban-trade-row .environment-badge { margin-top: 6px; margin-left: 44px; }
.payment-state { display: inline-flex; align-items: center; min-height: 22px; padding: 0 7px; border-radius: 4px; font-size: 8px; font-weight: 700; }
.payment-state.paid { color: #126e50; background: #e8f5ef; }
.payment-state.unpaid { color: #8b6413; background: #fff4d9; }

.resource-drawer.order-record-mode { width: min(528px, 96vw); overflow: hidden; background: #fff; }
body:has(.resource-drawer.order-record-mode.open) .drawer-backdrop { background: rgba(5, 24, 18, .08); backdrop-filter: none; }
.order-record-detail[hidden] { display: none; }
.order-record-detail { display: flex; height: 100vh; min-height: 640px; flex-direction: column; color: #26332e; background: #fff; }
.order-detail-header { display: flex; flex: 0 0 78px; align-items: center; justify-content: space-between; padding: 0 25px 0 28px; border-bottom: 1px solid #e2e6e4; }
.order-detail-header > div { display: flex; align-items: baseline; gap: 18px; }
.order-detail-header span { display: block; color: #47524d; font-size: 12px; font-weight: 500; letter-spacing: 0; }
.order-detail-header h2 { margin: 0; color: #15211c; font-size: 20px; letter-spacing: -.02em; }
.order-detail-header button { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 7px; color: #58645e; background: transparent; }
.order-detail-header button:hover { background: #f2f5f3; }
.order-detail-header .ph { font-size: 21px; }
.order-detail-scroll { min-height: 0; flex: 1; overflow-y: auto; padding: 22px 28px 28px; scrollbar-width: thin; scrollbar-color: #cfd7d3 transparent; }
.order-detail-badges { display: flex; gap: 34px; margin-bottom: 19px; padding-bottom: 16px; border-bottom: 1px solid #e5e9e7; }
.order-detail-badges label { display: flex; align-items: center; gap: 8px; color: #77817c; font-size: 10px; }
.order-detail-badges span { display: inline-flex; align-items: center; min-height: 24px; padding: 0 8px; border-radius: 4px; font-size: 9px; font-weight: 700; }
.order-detail-badges #order-detail-status { color: #e05c08; background: #fff0e5; }
.order-detail-badges .risk-attention { color: #a95e0b; background: #fff0d8; }
.order-detail-badges .risk-handling { color: #9b4d45; background: #f8e9e7; }
.order-detail-badges .risk-normal { color: #176e51; background: #eaf5f0; }
.order-detail-section { margin-bottom: 22px; padding-bottom: 21px; border-bottom: 1px solid #e5e9e7; }
.order-detail-section > h3 { margin: 0 0 13px; color: #1f2d27; font-size: 12px; }
.order-detail-section > h3 small { color: #7f8984; font-size: 9px; font-weight: 400; }
.order-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 30px; background: #fff; }
.order-info-grid > div { min-height: 40px; }
.order-info-grid small, .order-info-grid strong { display: block; }
.order-info-grid small { color: #89938e; font-size: 8px; }
.order-info-grid strong { margin-top: 5px; overflow: hidden; color: #344039; font-size: 10px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.order-fee-section[hidden] { display: none; }
.order-fee-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); overflow: hidden; border: 1px solid #dfe7e3; border-radius: 8px; background: #fbfdfc; }
.order-fee-grid > div { min-height: 62px; padding: 12px; border-right: 1px solid #e5ebe8; border-bottom: 1px solid #e5ebe8; }
.order-fee-grid > div:nth-child(3n) { border-right: 0; }
.order-fee-grid > div:nth-last-child(-n+3) { border-bottom: 0; }
.order-fee-grid small,.order-fee-grid strong { display: block; }
.order-fee-grid small { color: #86918b; font-size: 8px; }
.order-fee-grid strong { margin-top: 6px; color: #254136; font-size: 10px; }
.order-fee-proof { display: flex; align-items: flex-start; gap: 7px; margin: 10px 0 0; padding: 9px 10px; border-radius: 6px; color: #4e675c; background: #edf6f2; font-size: 8px; line-height: 1.55; }
.order-fee-proof i { margin-top: 1px; color: #126d50; font-size: 12px; }
.order-fee-proof b { font-weight: 700; }
.order-timeline { display: flex; align-items: flex-start; justify-content: space-between; padding: 8px 1px 0; }
.timeline-step { position: relative; display: flex; width: 16.66%; flex-direction: column; align-items: center; color: #929b97; text-align: center; }
.timeline-step > span { z-index: 2; display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #dbe1de; border-radius: 50%; color: #8a9590; background: #fff; }
.timeline-step.done > span { border-color: #1a8963; color: #fff; background: #16815d; }
.timeline-step.current > span { box-shadow: 0 0 0 4px #e1f1ea; }
.timeline-step b { margin-top: 7px; font-size: 8px; font-weight: 600; white-space: nowrap; }
.timeline-step.done b { color: #2d493e; }
.timeline-line { position: absolute; z-index: 1; top: 13px; left: calc(50% + 14px); width: calc(100% - 28px); height: 1px; background: #dce2df; }
.timeline-step.done .timeline-line { background: #6ca68f; }
.order-timeline.has-eight-stages .timeline-step { width: 12.5%; }
.timeline-exception { position: absolute; right: 0; transform: translateY(-25px); padding: 5px 7px; border-radius: 5px; color: #a23f35; background: #fae8e5; font-size: 8px; font-weight: 700; }
.order-timeline:has(.timeline-exception) { position: relative; padding-top: 34px; }
.ai-assessment-card { padding: 0 0 20px; border: 0; border-bottom: 1px solid #e5e9e7; border-radius: 0; background: #fff; }
.ai-assessment-title { display: flex; align-items: center; gap: 11px; }
.ai-assessment-title > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; color: #136d4e; background: #e4f2eb; }
.ai-assessment-title small { color: #789185; font-size: 7px; font-weight: 800; letter-spacing: .14em; }
.ai-assessment-title h3 { margin: 2px 0 0; font-size: 12px; }
.ai-assessment-card > p { margin: 14px 0 12px; color: #53615a; font-size: 9px; line-height: 1.75; }
.risk-reasons { display: flex; flex-wrap: wrap; gap: 7px; }
.risk-reasons span { display: inline-flex; align-items: center; gap: 4px; min-height: 25px; padding: 0 8px; border: 1px solid #e6d4bc; border-radius: 5px; color: #9d630f; background: #fffaf1; font-size: 8px; }
.order-ai-note { display: flex; align-items: center; gap: 7px; margin: -6px 0 18px; padding: 10px 11px; border-radius: 6px; color: #a9650e; background: #fff5e6; font-size: 9px; }
.order-ai-note[hidden] { display: none; }
.order-ai-note.normal { color: #167252; background: #eaf5f0; }
.intervention-editor { margin-bottom: 18px; }
.intervention-editor[hidden] { display: none; }
.intervention-editor label { display: grid; gap: 8px; color: #344039; font-size: 10px; font-weight: 650; }
.intervention-editor textarea { width: 100%; padding: 10px 11px; border: 1px solid #d7dfdb; border-radius: 7px; outline: 0; resize: vertical; color: #344039; font-size: 9px; line-height: 1.6; }
.intervention-editor textarea:focus { border-color: #4e9b7b; box-shadow: 0 0 0 3px #eaf5f0; }
.order-communication { display: grid; gap: 8px; }
.order-communication > div { display: grid; grid-template-columns: 62px 48px 1fr; gap: 8px; align-items: start; padding: 8px 10px; border-left: 2px solid #cadbd3; color: #59665f; background: #f8faf9; font-size: 9px; line-height: 1.45; }
.order-communication time { color: #87918c; }.order-communication strong { color: #29473b; }
.manual-order-editor { display: grid; gap: 10px; margin-bottom: 18px; padding: 12px; border: 1px solid #e5c8c2; border-radius: 8px; background: #fff8f6; }
.manual-order-editor[hidden] { display: none; }
.manual-order-warning { display: flex; gap: 8px; color: #9b3d32; font-size: 9px; line-height: 1.5; }.manual-order-warning i { margin-top: 1px; font-size: 14px; }
.manual-order-editor label { display: grid; gap: 6px; color: #344039; font-size: 9px; font-weight: 700; }
.manual-order-editor select,.manual-order-editor textarea,.manual-order-editor input { width: 100%; padding: 9px 10px; border: 1px solid #d9dfdc; border-radius: 6px; outline: 0; color: #26332e; background: #fff; font: inherit; }
.manual-order-editor textarea { resize: vertical; line-height: 1.55; }.manual-order-editor select:focus,.manual-order-editor textarea:focus { border-color: #8f5147; box-shadow: 0 0 0 3px #f8e9e6; }
.manual-order-editor input[readonly] { color: #52635b; background: #f5f8f6; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 8px; }
.order-request-id small { color: #87918c; font-size: 8px; font-weight: 400; }
.manual-order-editor > p { margin: 0; color: #756a66; font-size: 8px; line-height: 1.55; }
.order-detail-actions { display: grid; grid-template-columns: .9fr 1.05fr 1.25fr; gap: 9px; flex: 0 0 72px; align-items: center; padding: 12px 28px; border-top: 1px solid #e1e6e3; background: #fff; }
.order-detail-actions button { height: 43px; border-radius: 7px; font-size: 10px; font-weight: 700; }
.order-detail-actions #manual-order-action { border: 1px solid #a7473b; color: #a7473b; background: #fff7f5; }
.order-detail-actions .secondary { border: 1px solid #ef5d0b; color: #e85808; background: #fff; }
.order-detail-actions .primary { background: #ef5d0b; box-shadow: none; }

@media (max-width: 1300px) {
  .order-date { display: none; }
  .order-records-mode .resource-toolbar { flex-wrap: wrap; }
}
@media (max-width: 820px) {
  .order-records-mode .compact-stats { grid-template-columns: repeat(2, 1fr); }
  .order-records-mode .compact-stats button:nth-child(2) { border-right: 0; }
  .order-records-mode .compact-stats button:nth-child(-n+2) { border-bottom: 1px solid #e6eae8; }
}
@media (max-width: 620px) {
  .resource-drawer.order-record-mode { width: 100vw; }
  .order-detail-header, .order-detail-actions { padding-inline: 17px; }
  .order-detail-scroll { padding-inline: 17px; }
  .order-detail-actions { grid-template-columns: 1fr; min-height: 116px; }
}
.photographer-review {
  display: flex;
  flex-direction: column;
  height: 100vh;
  min-height: 680px;
  color: #26332e;
  background: #fff;
}
.photographer-review button,
.photographer-review textarea { font-family: inherit; }
.photographer-review-header {
  z-index: 5;
  display: flex;
  flex: 0 0 102px;
  align-items: center;
  justify-content: space-between;
  padding: 0 28px 0 32px;
  border-bottom: 1px solid #e2e6e4;
  background: #fff;
}
.reviewer-profile { display: flex; align-items: center; gap: 16px; min-width: 0; }
.reviewer-profile > img {
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  border: 1px solid #dce2df;
  border-radius: 50%;
  object-fit: cover;
  background: #edf2ef;
}
.reviewer-name-line { display: flex; align-items: center; gap: 10px; }
.reviewer-name-line h2 { margin: 0; color: #15201c; font-size: 20px; line-height: 1.2; letter-spacing: -.02em; }
.reviewer-profile p { display: flex; align-items: center; gap: 6px; margin: 7px 0 0; color: #747e79; font-size: 11px; }
.reviewer-profile p .ph { color: #53615b; font-size: 13px; }
.reviewer-profile p b { width: 1px; height: 12px; margin: 0 6px; background: #d8ddda; }
.review-state { padding: 4px 8px; border-radius: 5px; font-size: 10px; font-weight: 650; }
.review-state.status-pending { color: #9a610f; background: #fff2db; }
.review-state.status-approved { color: #126848; background: #e7f4ed; }
.review-state.status-rejected { color: #b64038; background: #fae8e6; }
.review-close { display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 7px; color: #4f5a55; background: transparent; }
.review-close:hover { background: #f2f4f3; }
.review-close .ph { font-size: 22px; }
.photographer-review-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(420px, 1fr); min-height: 0; flex: 1; }
.evidence-column { min-width: 0; overflow-y: auto; padding: 0 28px 32px; border-right: 1px solid #e3e7e5; scrollbar-width: thin; scrollbar-color: #ccd4d0 transparent; }
.review-tabs { position: sticky; top: 0; z-index: 3; display: flex; gap: 34px; height: 64px; margin-bottom: 18px; border-bottom: 1px solid #e5e8e6; background: rgba(255,255,255,.97); }
.review-tabs button { position: relative; border: 0; color: #414c47; background: transparent; font-size: 12px; font-weight: 600; }
.review-tabs button.active { color: #126447; }
.review-tabs button.active::after { content: ''; position: absolute; right: 0; bottom: -1px; left: 0; height: 3px; border-radius: 2px 2px 0 0; background: #16815d; }
.review-tab-panel { display: none; }
.review-tab-panel.active { display: block; }
.evidence-card { display: flex; margin-bottom: 10px; padding: 17px 18px; flex-direction: column; justify-content: center; border: 1px solid #dfe4e1; border-radius: 8px; background: #fff; }
.review-tab-panel[data-review-panel="application"] .evidence-card:nth-child(1) { min-height: 150px; }
.review-tab-panel[data-review-panel="application"] .evidence-card:nth-child(2) { min-height: 112px; }
.review-tab-panel[data-review-panel="application"] .evidence-card:nth-child(3) { min-height: 122px; }
.review-tab-panel[data-review-panel="application"] .evidence-card:nth-child(4) { min-height: 140px; }
.evidence-card-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.evidence-card-title h3 { display: flex; align-items: center; gap: 8px; margin: 0; color: #24312b; font-size: 13px; }
.evidence-card-title h3 .ph { color: #4c5b54; font-size: 16px; }
.evidence-pass, .evidence-warning { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 650; }
.evidence-pass { color: #16805b; }
.evidence-warning { color: #e08514; }
.evidence-pass .ph, .evidence-warning .ph { font-size: 13px; }
.evidence-details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px 18px; }
.evidence-details > div { min-width: 0; }
.evidence-details small, .evidence-details strong { display: block; }
.evidence-details small { margin-bottom: 4px; color: #7d8782; font-size: 10px; }
.evidence-details strong { overflow: hidden; color: #303b36; font-size: 11px; font-weight: 500; text-overflow: ellipsis; white-space: nowrap; }
.identity-details { grid-template-columns: 92px repeat(2, minmax(0, 1fr)); }
.identity-material { grid-row: span 2; }
.identity-material img { width: 86px; height: 51px; border: 1px solid #d5dcda; border-radius: 4px; object-fit: cover; background: #eef2f0; }
.empty-evidence { color: #b65a4f !important; }
.service-details { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.service-details .wide-detail { grid-column: 1 / -1; }
.portfolio-section { padding-top: 10px; }
.portfolio-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.portfolio-heading h3 { margin: 0; font-size: 12px; }
.portfolio-heading button { border: 0; color: #187153; background: transparent; font-size: 10px; font-weight: 650; }
.review-portfolio-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.portfolio-item { min-width: 0; }
.portfolio-item img { display: block; width: 100%; aspect-ratio: 1.25 / 1; border-radius: 6px; object-fit: cover; background: #e9eeeb; }
.portfolio-item strong, .portfolio-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portfolio-item strong { margin-top: 6px; color: #39443f; font-size: 9px; font-weight: 550; }
.portfolio-item small { margin-top: 2px; color: #8b9490; font-size: 8px; }
.review-portfolio-grid.expanded { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.review-portfolio-grid.expanded .portfolio-item img { aspect-ratio: 1.5 / 1; }
.review-portfolio-grid.expanded .portfolio-item strong { font-size: 11px; }
.expanded-panel-heading { display: flex; align-items: end; justify-content: space-between; margin: 24px 0 18px; padding-bottom: 14px; border-bottom: 1px solid #e8ebe9; }
.expanded-panel-heading span { color: #719084; font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.expanded-panel-heading h3 { margin: 4px 0 0; font-size: 18px; }
.expanded-panel-heading small { color: #89938e; font-size: 9px; }
.decision-column { display: flex; min-width: 0; min-height: 0; flex-direction: column; background: #fff; }
.decision-scroll { min-height: 0; flex: 1; overflow-y: auto; padding: 0 24px 26px; scrollbar-width: thin; scrollbar-color: #ccd4d0 transparent; }
.decision-heading { position: sticky; top: 0; z-index: 3; display: flex; height: 64px; align-items: center; border-bottom: 1px solid #e5e8e6; background: rgba(255,255,255,.97); }
.decision-heading h2 { margin: 0; font-size: 16px; }
.completion-block { padding: 17px 0 14px; }
.completion-block > div:first-child { display: flex; align-items: center; justify-content: space-between; color: #59655f; font-size: 10px; }
.completion-block strong { color: #4e5a54; font-size: 11px; }
.completion-track { height: 7px; margin-top: 10px; overflow: hidden; border-radius: 10px; background: #e8ecea; }
.completion-track i { display: block; width: 0; height: 100%; border-radius: inherit; background: #16815d; transition: width .25s ease; }
.review-points h3, .decision-section h3, .review-history h3 { margin: 0 0 10px; font-size: 11px; }
.check-row { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 10px; min-height: 61px; padding: 10px 12px; border: 1px solid #e1e5e3; border-bottom: 0; }
.check-row:first-child { border-radius: 8px 8px 0 0; }
.check-row:last-child { border-bottom: 1px solid #e1e5e3; border-radius: 0 0 8px 8px; }
.check-icon { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: #16815d; }
.check-icon.warning { background: #e58b15; }
.check-icon .ph { font-size: 13px; }
.check-row strong, .check-row small { display: block; }
.check-row strong { font-size: 10px; }
.check-row small { margin-top: 3px; color: #8a938f; font-size: 8px; }
.check-row > span:last-child { color: #14805a; font-size: 9px; font-weight: 650; }
.check-row > span.attention { color: #df8311; }
.decision-section { margin-top: 17px; }
.decision-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.decision-options button { display: flex; min-height: 94px; flex-direction: column; align-items: center; justify-content: center; padding: 9px 6px; border: 1px solid #dce1df; border-radius: 7px; color: #38433e; background: #fff; text-align: center; }
.decision-options button:hover { border-color: #9bb8ac; background: #fbfdfc; }
.decision-options button.active { border-color: #ca554c; color: #c33f36; background: #fffafa; }
.decision-options button[data-decision="approved"].active { border-color: #16815d; color: #126a4b; background: #f7fcf9; }
.decision-options button[data-decision="pending"].active { border-color: #8b9691; color: #5d6762; background: #f7f8f7; }
.decision-options .ph { margin-bottom: 5px; font-size: 19px; }
.decision-options strong { font-size: 10px; }
.decision-options span { margin-top: 4px; color: #8b9490; font-size: 8px; }
.reject-workspace { margin-top: 17px; }
.reject-workspace[hidden] { display: none; }
.reject-workspace > label, .internal-note > label { display: block; margin-bottom: 8px; color: #34403a; font-size: 10px; font-weight: 650; }
.reject-textarea-wrap { position: relative; }
.reject-textarea-wrap textarea, .internal-note textarea { width: 100%; resize: vertical; padding: 10px 12px; border: 1px solid #dce2df; border-radius: 7px; color: #303a36; background: #fff; outline: 0; font-size: 9px; line-height: 1.6; }
.reject-textarea-wrap textarea { min-height: 82px; padding-bottom: 24px; border-color: #df7a73; background: #fffdfd; }
.reject-textarea-wrap textarea:focus { border-color: #c84a41; box-shadow: 0 0 0 3px #faecea; }
.reject-textarea-wrap > span { position: absolute; right: 10px; bottom: 8px; color: #99a09d; font-size: 8px; }
.reject-textarea-wrap > span b { font-weight: 500; }
.quick-reason-label { margin: 10px 0 7px; color: #66716c; font-size: 9px; }
.quick-reasons { display: flex; flex-wrap: wrap; gap: 6px; }
.quick-reasons button { min-height: 25px; padding: 0 9px; border: 1px solid #dfe4e1; border-radius: 5px; color: #606b65; background: #fff; font-size: 8px; }
.quick-reasons button.selected { border-color: #efc1bc; color: #c34a41; background: #fdf0ee; }
.internal-note { margin-top: 17px; }
.internal-note label span { color: #8a938f; font-weight: 400; }
.internal-note textarea { min-height: 52px; }
.review-history { margin-top: 17px; }
.history-item { position: relative; display: grid; grid-template-columns: 27px 1fr auto; gap: 9px; min-height: 47px; }
.history-item:not(:last-child)::after { content: ''; position: absolute; top: 23px; bottom: 0; left: 12px; width: 1px; background: #dce2df; }
.history-mark { z-index: 1; display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #e0e4e2; border-radius: 50%; color: #176c50; background: #f2f7f4; font-size: 9px; font-weight: 700; }
.history-item strong, .history-item small { display: block; }
.history-item strong { color: #3d4843; font-size: 9px; }
.history-item small { margin-top: 3px; color: #8b9490; font-size: 8px; }
.history-item > time { color: #9ba39f; font-size: 8px; white-space: nowrap; }
.full-history { display: grid; gap: 10px; }
.full-history .history-item { min-height: 68px; padding: 14px; border: 1px solid #e0e5e2; border-radius: 8px; }
.full-history .history-item::after { display: none; }
.decision-actions { display: grid; grid-template-columns: .85fr 1.25fr; gap: 14px; flex: 0 0 72px; align-items: center; padding: 12px 24px; border-top: 1px solid #e1e6e3; background: #fff; }
.decision-actions button { height: 44px; border-radius: 7px; font-size: 11px; font-weight: 650; }
.draft-button { border: 1px solid #16815d; color: #126447; background: #fff; }
.confirm-decision { border: 0; color: #fff; background: #16815d; }
.confirm-decision.rejected { background: #c93831; }
.confirm-decision.pending { background: #68736e; }

/* Companion works — faithful implementation of the supplied desktop design */
.works-header-create, .works-reset, .works-pagination, .smart-assistant { display: none; }
body.works-page { background: #f8f8f5; }
body.works-page .sidebar { width: 294px; padding: 28px 12px 18px; }
body.works-page .sidebar .brand { padding: 0 6px; margin-bottom: 34px; }
body.works-page .sidebar nav { padding-bottom: 12px; }
body.works-page .nav-group { margin: 18px 16px 8px; font-size: 11px; letter-spacing: .08em; }
body.works-page .nav-item { min-height: 45px; padding: 9px 17px; font-size: 15px; }
body.works-page .nav-item .ph { font-size: 19px; }
body.works-page .nav-item.active { position: relative; background: linear-gradient(90deg, #0b7356, #0c664e); }
body.works-page .nav-item.active::before { content: ''; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; border-radius: 4px 0 0 4px; background: #efc968; }
body.works-page .ops-workspace { margin-left: 294px; }
body.works-page .ops-content { display: flex; max-width: none; min-height: 100vh; flex-direction: column; padding: 0 32px 48px; }
body.works-page .app-context-bar { order: 1; min-height: 54px; margin: 0 0 21px; padding: 0 16px; border-width: 0 0 1px; border-radius: 0; background: transparent; font-size: 14px; }
body.works-page .ops-topbar { order: 2; min-height: 116px; margin: 0; align-items: flex-start; }
body.works-page .topbar > div:first-child { padding-top: 2px; }
body.works-page .page-kicker { margin-bottom: 20px; color: #5f6d69; font-size: 14px; font-weight: 500; letter-spacing: 0; }
body.works-page .page-kicker::first-letter { color: #5f6d69; }
body.works-page h1 { font-size: 28px; line-height: 36px; }
body.works-page .page-description { margin-top: 5px; font-size: 14px; }
body.works-page .topbar-controls { padding-top: 39px; }
body.works-page .app-switch, body.works-page .icon-button { display: none; }
body.works-page .works-header-create { display: inline-flex; height: 47px; align-items: center; gap: 8px; padding: 0 20px; border-radius: 8px; font-size: 15px; }
body.works-page .works-header-create .ph { font-size: 21px; }
body.works-page #feedback { order: 3; }
body.works-page #list-view { order: 4; }
body.works-page .compact-stats { display: grid; grid-template-columns: 1.07fr .93fr; min-height: 139px; margin: 0 0 17px; padding: 0; overflow: hidden; border-radius: 10px; }
body.works-page .compact-stats > section { min-width: 0; padding: 17px 24px 12px; }
body.works-page .compact-stats > section + section { border-left: 1px solid #dee5e1; }
body.works-page .compact-stats h2 { margin: 0 0 13px; color: #5f6864; font-size: 14px; font-weight: 500; }
body.works-page .compact-stats section > div { display: grid; grid-template-columns: repeat(3, 1fr); }
body.works-page .compact-stats section:last-child > div { grid-template-columns: repeat(2, 1fr); }
body.works-page .compact-stats button { position: relative; display: flex; min-height: 70px; flex-direction: column; gap: 7px; border: 0; border-right: 1px solid #e5e9e7; }
body.works-page .compact-stats button:last-child { border-right: 0; }
body.works-page .compact-stats button span { color: #4f5955; font-size: 13px; }
body.works-page .compact-stats button strong { color: #172522; font-size: 22px; }
body.works-page .compact-stats button[data-stat-status="pending"] span,
body.works-page .compact-stats button[data-stat-status="pending"] strong { color: #b96908; }
body.works-page .compact-stats button[data-stat-status="approved"] strong,
body.works-page .compact-stats button[data-stat-status="published"] strong { color: #087a57; }
body.works-page #list-view > .panel { min-height: 0; overflow: visible; border-radius: 10px; }
body.works-page .resource-toolbar { min-height: 73px; padding: 12px 14px; gap: 13px; }
body.works-page .search-field { min-width: 340px; height: 46px; padding-inline: 13px; }
body.works-page .search-field input { font-size: 14px; }
body.works-page .resource-toolbar > select { width: 220px; height: 46px; padding: 0 38px 0 15px; font-size: 14px; }
body.works-page .works-reset { display: inline-flex; height: 46px; align-items: center; padding: 0 18px; border: 1px solid #dde2df; border-radius: 8px; color: #46504c; background: #fff; font-size: 14px; }
body.works-page .resource-toolbar .result-count { margin-left: 12px; color: #59625e; font-size: 14px; }
body.works-page .create-button { display: none; }
body.works-page .table-wrap { min-height: 0; overflow: visible; }
body.works-page .resource-table { min-width: 1080px; }
body.works-page .resource-table th { height: 57px; padding: 0 14px; color: #5f6965; background: #fbfcfb; font-size: 13px; }
body.works-page .resource-table td { height: 104px; padding: 11px 14px; font-size: 13px; }
body.works-page .resource-table th:nth-child(1) { width: 26%; }
body.works-page .resource-table th:nth-child(2) { width: 9%; }
body.works-page .resource-table th:nth-child(3) { width: 13%; }
body.works-page .resource-table th:nth-child(4) { width: 10%; }
body.works-page .resource-table th:nth-child(5) { width: 9%; }
body.works-page .resource-table th:nth-child(6) { width: 9%; }
body.works-page .resource-table th:nth-child(7) { width: 13%; }
body.works-page .resource-table th:nth-child(8) { width: 11%; }
body.works-page .resource-table tbody tr:hover { background: #f4faf7; }
.work-primary { display: flex; width: 100%; min-width: 0; align-items: center; gap: 13px; padding: 0; border: 0; color: #172522; background: transparent; text-align: left; }
.work-primary img { width: 124px; height: 80px; flex: 0 0 124px; border-radius: 8px; object-fit: cover; }
.work-primary span { min-width: 0; }
.work-primary strong, .work-primary small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.work-primary strong { font-size: 15px; }
.work-primary small { margin-top: 7px; color: #828b87; font-size: 12px; }
.work-author { color: #26332e; font-size: 13px; white-space: nowrap; }
.work-location { color: #3d4944; line-height: 1.6; }
.work-risk { color: #46514c; white-space: nowrap; }
.work-risk.warning { color: #c46d09; }
body.works-page .status { min-height: 29px; padding: 0 10px; border-radius: 6px; font-size: 12px; font-weight: 600; }
body.works-page .status::before { display: none; }
body.works-page .status-pending { color: #b96908; background: #fff4e5; }
body.works-page .status-approved, body.works-page .status-published { color: #087a57; background: #e8f5ee; }
body.works-page .status-draft { color: #5f6864; background: #f1f3f2; }
.work-time { color: #35413c; white-space: nowrap; }
.work-actions { position: relative; display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.work-actions > button { padding: 0; border: 0; color: #087255; background: transparent; font-size: 12px; font-weight: 600; }
.work-actions .work-more { display: grid; place-items: center; width: 28px; height: 28px; color: #26332e; font-size: 20px; }
.work-menu { position: absolute; z-index: 8; top: 31px; right: 0; display: none; width: 126px; padding: 5px; border: 1px solid #dee5e1; border-radius: 8px; background: #fff; box-shadow: 0 12px 28px rgba(19,52,40,.13); }
.work-menu.open { display: grid; }
.work-menu button { height: 34px; padding: 0 10px; border: 0; border-radius: 5px; color: #35413c; background: #fff; text-align: left; }
.work-menu button:hover { background: #eaf5f0; }
body.works-page .works-pagination { display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 0 18px; color: #69736f; font-size: 13px; }
.works-pagination > div { display: flex; align-items: center; gap: 8px; }
.works-pagination select, .works-pagination button { height: 42px; border: 1px solid #dce2df; border-radius: 8px; color: #4a5550; background: #fff; }
.works-pagination select { min-width: 112px; padding: 0 12px; }
.works-pagination button { min-width: 42px; }
.works-pagination button.active { color: #fff; border-color: #087255; background: #087255; }
.works-pagination button:disabled { color: #c4cbc7; background: #f5f6f5; }
body.works-page .smart-assistant { position: fixed; z-index: 20; right: 16px; bottom: 11px; display: grid; width: 66px; height: 66px; place-items: center; border: 6px solid #d8ecf8; border-radius: 50%; background: #fff; box-shadow: 0 5px 15px rgba(21,53,42,.18); }
.smart-assistant img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
.smart-assistant span { position: absolute; right: 69px; bottom: -3px; padding: 7px 10px; border-radius: 6px; color: #fff; background: #292d2b; font-size: 12px; white-space: nowrap; }

@media (max-width: 1280px) {
  body.works-page .sidebar { width: 238px; }
  body.works-page .ops-workspace { margin-left: 238px; }
  body.works-page .resource-toolbar { flex-wrap: wrap; }
  body.works-page .search-field { min-width: 280px; }
  body.works-page .resource-toolbar > select { width: 180px; }
}

/* Service cities — supplied desktop operations layout */
.spots-panel-heading, .spots-active-filters { display: none; }
body.spots-page { background: #fafaf8; }
body.spots-page .sidebar { display: none; }
body.spots-page .ops-workspace { margin-left: 0; }
body.spots-page .ops-content { max-width: none; padding: 27px 39px 64px; }
body.spots-page .ops-topbar { min-height: 108px; margin: 0; align-items: flex-start; }
body.spots-page .page-kicker { margin: 0 0 11px; color: #087255; font-size: 14px; letter-spacing: 0; }
body.spots-page h1 { color: #172522; font-size: 34px; line-height: 42px; }
body.spots-page .page-description { margin-top: 8px; color: #66716c; font-size: 15px; }
body.spots-page .topbar-controls { align-items: center; padding-top: 24px; }
body.spots-page .app-switch { padding: 3px; border-radius: 10px; }
body.spots-page .app-switch button { min-width: 142px; height: 48px; font-size: 16px; }
body.spots-page .app-switch button.active { border-radius: 8px; }
body.spots-page .icon-button { width: 58px; height: 56px; border-radius: 9px; }
body.spots-page .icon-button .ph { font-size: 26px; }
body.spots-page .works-header-create { display: inline-flex; height: 56px; align-items: center; gap: 9px; padding: 0 20px; border-radius: 9px; font-size: 15px; }
body.spots-page .works-header-create .ph { font-size: 21px; }
body.spots-page .app-context-bar { min-height: 57px; margin: 0 0 20px; padding: 0 19px; border-color: #d4e5de; border-radius: 10px; background: #f2f8f5; font-size: 14px; }
body.spots-page .app-context-bar small { font-size: 13px; }
body.spots-page .compact-stats { display: grid; grid-template-columns: 2.2fr .9fr; min-height: 164px; margin-bottom: 18px; padding: 24px 0 18px; overflow: hidden; border-radius: 11px; }
body.spots-page .compact-stats > section { min-width: 0; padding: 0 24px; }
body.spots-page .compact-stats > section + section { border-left: 1px solid #dee5e1; }
body.spots-page .compact-stats h2 { margin: 0 0 11px; color: #1f2c27; font-size: 17px; }
body.spots-page .compact-stats section > div { display: grid; grid-template-columns: repeat(3, 1fr); }
body.spots-page .compact-stats section:last-child > div { grid-template-columns: 1fr; }
body.spots-page .compact-stats button { display: flex; min-height: 83px; flex-direction: column; gap: 8px; border: 0; border-right: 1px solid #e3e7e5; color: #4e5954; background: #fff; }
body.spots-page .compact-stats button:last-child { border-right: 0; }
body.spots-page .compact-stats button span { font-size: 14px; }
body.spots-page .compact-stats button strong { color: #172522; font-size: 25px; font-weight: 650; }
body.spots-page #list-view > .panel { min-height: 0; overflow: visible; border-radius: 11px; }
body.spots-page .spots-panel-heading { display: flex; min-height: 68px; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid #dee5e1; }
.spots-panel-heading > div { display: flex; align-items: baseline; gap: 25px; }
.spots-panel-heading h2 { margin: 0; color: #1e2b26; font-size: 19px; }
.spots-panel-heading p { margin: 0; color: #6d7772; font-size: 13px; }
.spots-panel-heading > span { color: #4d5752; font-size: 13px; }
body.spots-page .resource-toolbar { min-height: 81px; padding: 17px 20px 9px; gap: 16px; border-bottom: 0; }
body.spots-page .search-field { min-width: 310px; height: 46px; }
body.spots-page .search-field input { font-size: 14px; }
body.spots-page .resource-toolbar > select { min-width: 170px; height: 46px; padding-inline: 14px 36px; font-size: 13px; }
body.spots-page .resource-toolbar .result-count, body.spots-page .create-button { display: none; }
body.spots-page .works-reset { display: inline-flex; height: 46px; align-items: center; padding: 0 19px; border: 1px solid #dce2df; border-radius: 8px; color: #46504c; background: #fff; font-size: 13px; }
body.spots-page .spots-active-filters { min-height: 62px; align-items: center; gap: 12px; padding: 5px 21px 13px; color: #59645f; font-size: 13px; }
body.spots-page .spots-active-filters:not([hidden]) { display: flex; }
.spots-active-filters button { display: inline-flex; height: 38px; align-items: center; gap: 7px; padding: 0 12px; border: 0; border-radius: 6px; color: #315a4b; background: #eaf3ef; }
.spots-active-filters button[data-spots-clear] { color: #087255; background: transparent; font-weight: 600; }
body.spots-page .table-wrap { min-height: 0; overflow: visible; }
body.spots-page .resource-table { min-width: 1120px; }
body.spots-page .resource-table th { height: 54px; padding: 0 20px; color: #59645f; background: #fafbfa; font-size: 12px; }
body.spots-page .resource-table td { height: 116px; padding: 13px 20px; color: #3d4843; font-size: 13px; }
body.spots-page .resource-table th:nth-child(1) { width: 27%; }
body.spots-page .resource-table th:nth-child(2) { width: 9%; }
body.spots-page .resource-table th:nth-child(3) { width: 10%; }
body.spots-page .resource-table th:nth-child(4) { width: 9%; }
body.spots-page .resource-table th:nth-child(5) { width: 9%; }
body.spots-page .resource-table th:nth-child(6) { width: 12%; }
body.spots-page .resource-table th:nth-child(7) { width: 13%; }
body.spots-page .resource-table th:nth-child(8) { width: 11%; }
body.spots-page .resource-table tbody tr:hover { background: #f3f9f6; }
.spot-primary { display: flex; min-width: 0; align-items: center; gap: 17px; padding: 0; border: 0; color: #172522; background: transparent; text-align: left; }
.spot-primary img { width: 132px; height: 87px; flex: 0 0 132px; border-radius: 8px; object-fit: cover; }
.spot-primary strong, .spot-primary small { display: block; }
.spot-primary strong { font-size: 15px; }
.spot-primary small { margin-top: 8px; color: #65706b; font-size: 12px; }
body.spots-page .status { min-height: 29px; padding: 0 10px; border-radius: 6px; font-size: 12px; font-weight: 600; }
body.spots-page .status::before { display: none; }
body.spots-page .status-approved, body.spots-page .status-published { color: #087a57; background: #e8f5ee; }
body.spots-page .status-pending { color: #b96908; background: #fff4e5; }
.spot-rank { display: flex; align-items: center; gap: 10px; }
.spot-rank > .ph { color: #69736e; font-size: 20px; }
.spot-rank label { display: flex; width: 104px; height: 43px; align-items: center; justify-content: space-between; padding-left: 13px; border: 1px solid #dce2df; border-radius: 7px; background: #fff; }
.spot-rank label > span { display: grid; width: 32px; height: 100%; }
.spot-rank label button { display: grid; place-items: center; padding: 0; border: 0; color: #69736e; background: transparent; font-size: 11px; }
body.spots-page .works-pagination { display: flex; min-height: 85px; align-items: center; justify-content: space-between; padding: 0 25px; color: #59645f; font-size: 13px; }
body.spots-page .works-pagination::after { content: '推荐排序仅影响已发布内容'; position: absolute; left: 50%; transform: translateX(-50%); color: #65706b; }
body.spots-page .smart-assistant { position: fixed; z-index: 20; right: 22px; bottom: 15px; display: grid; width: 66px; height: 66px; place-items: center; border: 6px solid #d8ecf8; border-radius: 50%; background: #fff; box-shadow: 0 5px 15px rgba(21,53,42,.18); }
body.spots-page .smart-assistant::after { content: '2'; position: absolute; top: -7px; right: -7px; display: grid; width: 25px; height: 25px; place-items: center; border: 2px solid #fff; border-radius: 50%; color: #fff; background: #ef4545; font-size: 12px; font-weight: 700; }

@media (max-width: 1180px) {
  body.spots-page .ops-content { padding-inline: 22px; }
  body.spots-page .resource-toolbar { flex-wrap: wrap; }
  body.spots-page .search-field { min-width: 280px; }
  body.spots-page .resource-toolbar > select { flex: 1; min-width: 145px; }
}

@media (max-width: 1180px) {
  .resource-drawer.photographer-mode { width: min(980px, calc(100vw - 90px)); }
  .photographer-review-grid { grid-template-columns: minmax(0, 1.08fr) minmax(380px, 1fr); }
  .evidence-column { padding-inline: 20px; }
  .decision-scroll { padding-inline: 18px; }
}
@media (max-width: 860px) {
  .resource-drawer.photographer-mode { width: calc(100vw - 42px); }
  .photographer-review-grid { display: block; overflow-y: auto; }
  .evidence-column, .decision-column { overflow: visible; border-right: 0; }
  .decision-scroll { overflow: visible; }
  .decision-actions { position: sticky; bottom: 0; }
}
@media (max-width: 620px) {
  .resource-drawer.photographer-mode { width: 100vw; }
  .photographer-review-header { padding-inline: 16px; }
  .reviewer-profile > img { width: 44px; height: 44px; flex-basis: 44px; }
  .reviewer-name-line h2 { font-size: 17px; }
  .reviewer-profile p { flex-wrap: wrap; }
  .evidence-column, .decision-scroll { padding-inline: 14px; }
  .evidence-details, .service-details { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .identity-details { grid-template-columns: 82px 1fr; }
  .review-portfolio-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .decision-options { grid-template-columns: 1fr; }
}

/* Operations analytics dashboard — selected Product Design direction 3 */
.analysis-dashboard { color: #23312b; }
.analysis-dashboard .panel { box-shadow: none; }
.analysis-dashboard + * { min-width: 0; }
.analysis-dashboard ~ * { min-width: 0; }
.ops-content:has(.analysis-dashboard:not([hidden])) .app-context-bar { min-height: 48px; margin-bottom: 14px; background: #f4f9f6; }
.analysis-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  min-height: 104px;
  margin: 0 0 14px;
  border: 0;
  background: #fff;
}
.analysis-metric {
  position: relative;
  display: grid;
  grid-template-columns: 54px 1fr;
  align-items: center;
  gap: 16px;
  min-width: 0;
  padding: 14px 22px;
  border: 0;
  color: #26342e;
  background: #fff;
  text-align: left;
}
.analysis-metric + .analysis-metric::before { content: ''; position: absolute; top: 27px; bottom: 27px; left: 0; width: 1px; background: #e5e9e7; }
.analysis-metric:hover { background: #f8fbf9; }
.analysis-metric .metric-icon { width: 54px; height: 54px; border-radius: 11px; }
.analysis-metric .metric-icon .ph { font-size: 24px; }
.analysis-metric-copy { display: block; min-width: 0; }
.analysis-metric-copy small, .analysis-metric-copy strong, .analysis-metric-copy em { display: block; }
.analysis-metric-copy small { color: #58655f; font-size: 12px; }
.analysis-metric-copy strong { margin-top: 5px; color: #101b17; font-size: 28px; line-height: 1.08; letter-spacing: -.03em; }
.analysis-metric-copy em { margin-top: 8px; color: #8a938f; font-size: 9px; font-style: normal; }
.analysis-metric-copy em b { margin-left: 4px; font-weight: 650; }
.analysis-metric-copy em .up { color: #16805b; }
.analysis-metric-copy em .down { color: #d4574d; }
.analysis-primary-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(390px, 1fr); gap: 14px; margin-bottom: 14px; }
.trend-analysis-panel, .funnel-panel { min-width: 0; min-height: 390px; overflow: hidden; }
.analysis-panel-heading { display: flex; min-height: 66px; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px 11px; }
.analysis-panel-heading.compact { min-height: 58px; border-bottom: 1px solid #e8ecea; }
.analysis-panel-heading h2 { margin: 0; color: #1f2c26; font-size: 16px; line-height: 1.2; }
.analysis-panel-heading p { margin: 5px 0 0; color: #89928e; font-size: 9px; }
.trend-tabs { display: flex; overflow: hidden; border: 1px solid #dce2df; border-radius: 6px; background: #fff; }
.trend-tabs button { min-width: 76px; height: 29px; padding: 0 12px; border: 0; border-right: 1px solid #e2e6e4; color: #65706a; background: #fff; font-size: 10px; }
.trend-tabs button:last-child { border-right: 0; }
.trend-tabs button.active { color: #0f6347; background: #f0f8f4; box-shadow: inset 0 0 0 1px #16805b; font-weight: 700; }
.trend-legend { display: flex; gap: 26px; padding: 1px 20px 0; color: #68736e; font-size: 9px; }
.trend-legend span { display: inline-flex; align-items: center; gap: 7px; }
.trend-legend b { font-weight: 500; }
.trend-legend i { display: inline-block; }
.bar-key { width: 12px; height: 10px; background: #d9ebe3; }
.line-key { width: 14px; height: 2px; background: #0c6046; }
.trend-canvas-wrap { height: 250px; padding: 4px 14px 0 8px; }
#trend-canvas { display: block; width: 100%; height: 100%; }
.trend-insight { display: flex; min-height: 40px; align-items: center; gap: 8px; margin: 0 16px 14px; padding: 0 13px; border: 1px solid #dbe7e1; border-radius: 6px; color: #5d6a64; background: #f1f8f4; font-size: 10px; }
.trend-insight .ph, .trend-insight strong { color: #137351; }
.funnel-alert { display: inline-flex; min-height: 29px; align-items: center; gap: 6px; padding: 0 10px; border: 0; border-radius: 6px; color: #d66a25; background: #fff7f1; font-size: 9px; }
.funnel-alert .ph:last-child { color: #8f9994; }
.funnel-stages { display: grid; gap: 9px; padding: 13px 18px 10px; }
.funnel-stage { display: grid; grid-template-columns: 110px minmax(100px, 1fr) 52px; min-height: 53px; align-items: center; gap: 10px; }
.funnel-stage > span { display: flex; height: 42px; align-items: center; justify-content: space-between; padding: 0 12px; border: 1px solid #dce4e0; border-radius: 6px; color: #4b5751; background: #fbfcfb; font-size: 10px; }
.funnel-stage > span strong { color: #163128; font-size: 16px; }
.funnel-stage > i { display: block; height: 42px; justify-self: center; background: #d8e9e1; clip-path: polygon(5% 0, 95% 0, 84% 100%, 16% 100%); }
.funnel-stage:nth-child(2) > i { background: #cde2d8; }
.funnel-stage:nth-child(3) > i { background: #bcd8cc; }
.funnel-stage:nth-child(4) > i { background: #a8cdbd; }
.funnel-stage > b { color: #2b694f; font-size: 10px; font-weight: 600; text-align: right; }
.funnel-total { min-height: 40px; margin: 0 18px 15px; padding: 10px 12px; border: 1px solid #dce7e2; border-radius: 6px; color: #19704f; background: #eff7f3; font-size: 10px; }
.analysis-secondary-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) minmax(0, 1.12fr); gap: 14px; }
.city-supply-panel, .content-quality-panel, .risk-panel { min-width: 0; min-height: 296px; overflow: hidden; }
.city-table { padding: 0 12px; }
.city-table-head, .city-row { display: grid; grid-template-columns: 36px .75fr 1fr .68fr 1.25fr; align-items: center; gap: 7px; }
.city-table-head { height: 32px; padding: 0 7px; color: #78847e; background: #f7f9f8; font-size: 8px; }
.city-row { width: 100%; min-height: 44px; padding: 0 7px; border: 0; border-bottom: 1px solid #edf0ee; color: #59655f; background: #fff; font-size: 9px; text-align: left; }
.city-row:hover { background: #f8fbf9; }
.city-row strong { color: #35423c; font-size: 10px; }
.city-rank { display: grid; place-items: center; width: 21px; height: 21px; border-radius: 50%; color: #5c6862; background: #e8ecea; font-weight: 700; }
.city-rank.rank-1 { color: #fff; background: #d6a943; }
.city-rank.rank-2 { color: #fff; background: #a8b1ad; }
.city-rank.rank-3 { color: #fff; background: #c58b50; }
.city-progress { display: grid; grid-template-columns: 1fr 29px; align-items: center; gap: 5px; }
.city-progress::before { content: ''; grid-area: 1 / 1; height: 6px; border-radius: 6px; background: #e5eae7; }
.city-progress i { grid-area: 1 / 1; height: 6px; border-radius: 6px; background: #127553; }
.city-progress b { color: #748079; font-size: 8px; font-weight: 500; }
.analysis-footer-link { display: flex; width: 100%; height: 39px; align-items: center; justify-content: center; gap: 5px; border: 0; color: #167050; background: #fff; font-size: 10px; font-weight: 650; }
.analysis-footer-link:hover { background: #f5faf7; }
.quality-body { display: grid; grid-template-columns: .8fr 1.2fr; min-height: 198px; padding: 11px 14px 7px; }
.quality-stats { display: grid; align-content: center; gap: 9px; border-right: 1px solid #e6eae8; }
.quality-stats small, .quality-stats strong, .quality-stats span { display: block; }
.quality-stats small { color: #78837e; font-size: 8px; }
.quality-stats strong { margin-top: 1px; color: #1c2923; font-size: 20px; line-height: 1.1; }
.quality-stats span { margin-top: 3px; font-size: 7px; }
.quality-up { color: #16805a; }
.quality-ring-wrap { display: grid; grid-template-columns: 1.1fr .9fr; align-items: center; min-width: 0; padding-left: 8px; }
#quality-ring { width: 126px; height: 126px; max-width: 100%; justify-self: center; }
.quality-ring-legend { display: grid; gap: 9px; color: #65716b; font-size: 8px; }
.quality-ring-legend span { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
.quality-ring-legend i { width: 7px; height: 7px; border-radius: 50%; }
.approved-dot { background: #0c7452; }.rejected-dot { background: #7880a0; }.pending-dot { background: #dce3df; }
.risk-list { display: grid; gap: 7px; padding: 11px 12px; }
.risk-item { display: grid; grid-template-columns: 30px 1fr auto 14px; min-height: 52px; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid #e4e8e6; border-radius: 7px; color: #38453f; background: #fff; text-align: left; }
.risk-item:hover { border-color: #cdd9d3; background: #fbfcfb; }
.risk-icon { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: #fff; background: #db9a1e; }
.risk-icon.critical { background: #d84d43; }
.risk-icon .ph { font-size: 15px; }
.risk-item strong, .risk-item small { display: block; }
.risk-item strong { font-size: 9px; }
.risk-item small { margin-top: 3px; color: #8b9490; font-size: 7px; }
.risk-item time { color: #9ba39f; font-size: 7px; white-space: nowrap; }
.risk-item > .ph { color: #89938e; font-size: 10px; }
.risk-center-button { display: block; width: calc(100% - 24px); height: 36px; margin: 0 12px 12px; border: 0; border-radius: 6px; color: #fff; background: #0c6d4d; font-size: 10px; font-weight: 650; }

@media (max-width: 1180px) {
  .analysis-primary-grid { grid-template-columns: 1fr; }
  .analysis-secondary-grid { grid-template-columns: 1fr 1fr; }
  .risk-panel { grid-column: 1 / -1; }
}
@media (max-width: 820px) {
  .analysis-metrics { grid-template-columns: 1fr 1fr; }
  .analysis-metric:nth-child(3)::before { display: none; }
  .analysis-secondary-grid { grid-template-columns: 1fr; }
  .risk-panel { grid-column: auto; }
}
@media (max-width: 620px) {
  .analysis-metrics { grid-template-columns: 1fr; }
  .analysis-metric + .analysis-metric::before { top: 0; right: 22px; bottom: auto; left: 22px; width: auto; height: 1px; }
  .analysis-primary-grid { display: block; }
  .trend-analysis-panel, .funnel-panel { margin-bottom: 12px; }
  .analysis-panel-heading { align-items: flex-start; flex-direction: column; }
  .trend-tabs { width: 100%; }
  .trend-tabs button { flex: 1; min-width: 0; }
  .funnel-stage { grid-template-columns: 92px minmax(70px, 1fr) 42px; }
  .quality-body { grid-template-columns: 1fr; }
  .quality-stats { grid-template-columns: repeat(3, 1fr); border-right: 0; border-bottom: 1px solid #e6eae8; }
}

/* 咔伴统一审核与上线治理工作台 */
.review-center-view { color: #26342e; }
.scope-decision { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 15px; margin-bottom: 14px; padding: 15px 17px; border: 1px solid #efcfc9; border-radius: 10px; background: #fff8f6; }
.scope-decision-icon { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 9px; color: #b54036; background: #fbe7e3; }
.scope-decision-icon .ph { font-size: 22px; }
.scope-decision span { color: #a34a41; font-size: 10px; font-weight: 750; }
.scope-decision h2 { margin: 3px 0 4px; color: #382b28; font-size: 15px; }
.scope-decision p { margin: 0; color: #7b655f; font-size: 10px; line-height: 1.55; }
.scope-decision > button { height: 34px; padding: 0 13px; border: 1px solid #d9978e; border-radius: 7px; color: #943c34; background: #fff; font-size: 10px; font-weight: 700; white-space: nowrap; }
.scope-decision > button:active, .review-queue-action:active, .readiness-table button:active { transform: translateY(1px); }

.review-mode-metrics { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 14px; overflow: hidden; border: 1px solid #dfe5e2; border-radius: 10px; background: #fff; }
.review-mode-metrics button { display: grid; min-height: 96px; grid-template-columns: 38px 1fr; align-items: center; gap: 11px; padding: 15px 16px; border: 0; border-right: 1px solid #e7ebe9; color: inherit; background: #fff; text-align: left; }
.review-mode-metrics button:last-child { border-right: 0; }
.review-mode-metrics button:hover { background: #f7faf8; }
.review-mode-metrics > button > .ph { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 8px; color: #146c50; background: #e8f3ee; font-size: 19px; }
.review-mode-metrics span { display: grid; min-width: 0; grid-template-columns: 1fr auto; align-items: baseline; gap: 4px 8px; }
.review-mode-metrics small { color: #596660; font-size: 10px; }
.review-mode-metrics strong { grid-row: 1 / span 2; grid-column: 2; color: #17231e; font-size: 23px; line-height: 1; }
.review-mode-metrics em { overflow: hidden; color: #8b9590; font-size: 8px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }

.review-center-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .75fr); gap: 14px; margin-bottom: 14px; }
.review-queue-panel, .review-workflow-panel, .readiness-panel { overflow: hidden; box-shadow: none; }
.review-center-heading { display: flex; min-height: 61px; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #e6ebe8; }
.review-center-heading h2 { margin: 0; color: #1e2a25; font-size: 14px; }
.review-center-heading p { margin: 4px 0 0; color: #7f8a84; font-size: 9px; }
.review-center-heading > span { padding: 4px 7px; border-radius: 5px; color: #68756f; background: #f1f4f2; font-size: 8px; }
.review-queue-tabs { display: flex; gap: 4px; padding: 9px 12px; border-bottom: 1px solid #e8ecea; background: #fafbfa; }
.review-queue-tabs button, .readiness-filter button { min-height: 28px; padding: 0 10px; border: 1px solid transparent; border-radius: 6px; color: #69756f; background: transparent; font-size: 9px; }
.review-queue-tabs button.active, .readiness-filter button.active { border-color: #bfd7cc; color: #0b6b4c; background: #eef7f3; font-weight: 700; }
.review-filterbar { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)) auto; gap: 7px; padding: 9px 12px; border-bottom: 1px solid #e8ecea; background: #fff; }
.review-filterbar select, .review-filterbar button { min-width: 0; height: 30px; padding: 0 8px; border: 1px solid #d7dfdb; border-radius: 6px; color: #526159; background: #fff; font-size: 8px; }
.review-filterbar button { color: #176e51; font-weight: 700; }
.review-queue-list { max-height: 430px; overflow: auto; }
.review-task-table { min-width: 0; }
.review-task-head, .review-task-row { display: grid; grid-template-columns: 110px minmax(180px, 1fr) 98px 84px 58px; align-items: center; gap: 8px; padding: 0 10px; }
.review-task-head { position: sticky; z-index: 2; top: 0; min-height: 32px; border-bottom: 1px solid #e5eae7; color: #75817b; background: #f7f9f8; font-size: 8px; font-weight: 650; }
.review-task-row { min-height: 86px; border-bottom: 1px solid #edf0ee; }
.review-task-row:hover { background: #fbfcfb; }
.review-task-row > div { display: grid; min-width: 0; gap: 4px; }
.review-task-row small, .review-task-row em, .review-task-row time, .review-task-row b { color: #7c8982; font-size: 8px; font-style: normal; font-weight: 500; }
.review-task-row strong { overflow: hidden; color: #26342e; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.review-task-row p, .review-task-row em { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-task-row p { color: #8d641b; font-size: 8px; }
.review-task-row > div:nth-child(3) b { color: #627169; }
.review-task-row > div:nth-child(4) strong { color: #4f6b5f; font-size: 8px; }
.review-task-row > div:nth-child(4) strong.urgent { color: #a86d11; }
.review-task-row > div:nth-child(4) strong.overdue { color: #b54037; }
.review-task-row > div:last-child button { height: 29px; border: 1px solid #b9d3c7; border-radius: 6px; color: #0c6a4c; background: #fff; font-size: 8px; font-weight: 700; }
.review-task-row > div:last-child button.secondary { color: #66756d; border-color: #d2dad6; }
.review-task-row > div:last-child button.link { height: auto; padding: 0; border: 0; color: #68776f; background: transparent; }
.task-risk { display: inline-flex; width: fit-content; min-height: 21px; align-items: center; padding: 0 7px; border-radius: 5px; font-size: 8px; font-weight: 700; }
.task-risk.high { color: #a63d35; background: #fae8e5; }.task-risk.medium { color: #906114; background: #fff1d5; }.task-risk.low { color: #39705b; background: #eaf4ef; }
.review-mode.human { color: #416657; background: #eaf2ee; }
.review-loading { display: grid; gap: 10px; padding: 18px 14px; }
.review-loading span { height: 58px; border-radius: 7px; background: linear-gradient(90deg, #f2f5f3 25%, #fafbfa 50%, #f2f5f3 75%); background-size: 200% 100%; animation: reviewSkeleton 1.2s infinite; }
@keyframes reviewSkeleton { to { background-position: -200% 0; } }
.review-empty { display: grid; min-height: 210px; place-items: center; align-content: center; gap: 6px; padding: 24px; color: #728078; text-align: center; }
.review-empty i { color: #8aa196; font-size: 28px; }.review-empty strong { color: #3b4b44; font-size: 11px; }.review-empty p { margin: 0; font-size: 9px; }
.review-empty button { height: 30px; padding: 0 11px; border: 1px solid #bed2c9; border-radius: 6px; color: #0d6d4e; background: #fff; font-size: 9px; }
.review-queue-row { display: grid; grid-template-columns: 86px minmax(0, 1fr) 96px 52px; min-height: 70px; align-items: center; gap: 11px; padding: 10px 14px; border-bottom: 1px solid #edf0ee; }
.review-queue-row:last-child { border-bottom: 0; }
.review-queue-row:hover { background: #fbfcfb; }
.review-mode { display: inline-flex; min-height: 24px; align-items: center; justify-content: center; padding: 0 7px; border-radius: 5px; font-size: 8px; font-weight: 700; white-space: nowrap; }
.review-mode.manual { color: #9e3f38; background: #fbe9e6; }
.review-mode.hybrid { color: #8f6416; background: #fff4dc; }
.review-queue-row > div:nth-child(2) { min-width: 0; }
.review-queue-row small, .review-queue-row strong, .review-queue-row p { display: block; }
.review-queue-row small { color: #167454; font-size: 8px; }
.review-queue-row strong { margin-top: 3px; overflow: hidden; color: #2a3731; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.review-queue-row p { margin: 3px 0 0; overflow: hidden; color: #84908a; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.review-queue-time { display: grid; gap: 4px; justify-items: end; font-size: 8px; }
.review-queue-time span { color: #8a948f; }
.review-queue-time b { color: #597168; font-weight: 600; }
.review-queue-time b.urgent { color: #b97415; }
.review-queue-time b.overdue { color: #bd443b; }
.review-queue-action { height: 29px; border: 1px solid #bfd4ca; border-radius: 6px; color: #0b6d4d; background: #fff; font-size: 9px; font-weight: 700; }

.review-workflow { display: grid; gap: 0; margin: 0; padding: 16px 17px 10px; list-style: none; }
.review-workflow li { position: relative; display: grid; min-height: 51px; grid-template-columns: 28px 1fr; align-items: start; gap: 10px; }
.review-workflow li:not(:last-child)::after { content: ''; position: absolute; top: 25px; bottom: -2px; left: 13px; width: 1px; background: #d9e0dc; }
.review-workflow li > i { display: grid; z-index: 1; place-items: center; width: 28px; height: 28px; border: 1px solid #d6deda; border-radius: 50%; color: #7f8a84; background: #fff; font-size: 12px; }
.review-workflow li.done > i { border-color: #9cc8b5; color: #fff; background: #18805d; }
.review-workflow li.current > i { border: 4px solid #f4c86e; color: #95620d; background: #fff7e6; }
.review-workflow strong, .review-workflow span { display: block; }
.review-workflow strong { margin-top: 2px; color: #34413b; font-size: 10px; }
.review-workflow span { margin-top: 3px; color: #909994; font-size: 7px; letter-spacing: .03em; }
.audit-minimum { display: flex; gap: 10px; margin: 0 14px 14px; padding: 11px; border-radius: 7px; color: #4a6157; background: #eff6f2; }
.audit-minimum > i { margin-top: 1px; color: #187454; font-size: 17px; }
.audit-minimum p { margin: 0; }
.audit-minimum strong, .audit-minimum span { display: block; }
.audit-minimum strong { font-size: 9px; }
.audit-minimum span { margin-top: 3px; color: #738079; font-size: 8px; line-height: 1.5; }

.readiness-filter { display: flex; gap: 3px; }
.readiness-table-wrap { overflow-x: auto; }
.readiness-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.readiness-table th { height: 34px; padding: 0 12px; color: #75817b; background: #f7f9f8; font-size: 8px; font-weight: 650; text-align: left; }
.readiness-table th:nth-child(1) { width: 64px; }.readiness-table th:nth-child(2) { width: 150px; }.readiness-table th:nth-child(3) { width: 118px; }.readiness-table th:nth-child(5) { width: 135px; }.readiness-table th:nth-child(6) { width: 66px; }
.readiness-table td { min-height: 52px; padding: 11px 12px; border-bottom: 1px solid #e9edeb; color: #58655f; font-size: 9px; line-height: 1.45; vertical-align: middle; }
.readiness-table tbody tr:hover { background: #fbfcfb; }
.readiness-table strong { color: #2d3a34; font-size: 9.5px; }
.readiness-priority { display: inline-flex; min-width: 30px; min-height: 22px; align-items: center; justify-content: center; border-radius: 5px; font-size: 8px; font-weight: 750; }
.readiness-priority.p0 { color: #a83d35; background: #fbe8e5; }.readiness-priority.p1 { color: #966313; background: #fff2d8; }.readiness-priority.p2 { color: #537066; background: #edf2ef; }
.readiness-status { display: inline-block; margin-right: 6px; font-weight: 700; }
.readiness-status.blocked { color: #b54037; }.readiness-status.progress { color: #a66d10; }.readiness-status.pending { color: #65736c; }
.readiness-table td small { color: #89938e; font-size: 8px; }
.readiness-table button { height: 28px; padding: 0 9px; border: 1px solid #cbd8d2; border-radius: 6px; color: #126e50; background: #fff; font-size: 9px; font-weight: 700; }

@media (max-width: 1180px) {
  .review-mode-metrics { grid-template-columns: 1fr 1fr; }
  .review-mode-metrics button:nth-child(2) { border-right: 0; }
  .review-mode-metrics button:nth-child(-n+2) { border-bottom: 1px solid #e7ebe9; }
  .review-center-grid { grid-template-columns: 1fr; }
  .review-workflow-panel { display: grid; grid-template-columns: 1fr 280px; }
  .review-workflow-panel .review-center-heading { grid-column: 1 / -1; }
  .audit-minimum { align-self: center; }
  .review-filterbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .scope-decision { grid-template-columns: 36px 1fr; }
  .scope-decision > button { grid-column: 1 / -1; }
  .review-mode-metrics { grid-template-columns: 1fr; }
  .review-mode-metrics button { border-right: 0; border-bottom: 1px solid #e7ebe9; }
  .review-queue-row { grid-template-columns: 82px minmax(0, 1fr) 48px; }
  .review-queue-time { display: none; }
  .review-workflow-panel { display: block; }
  .readiness-table { min-width: 900px; }
}

/* 约拍小程序 · 结算与资金风险工作台 */
.finance-workbench-view { display: grid; gap: 12px; }
.finance-workbench-view[hidden] { display: none; }
.finance-demo-banner { min-height: 48px; display: flex; align-items: center; gap: 11px; padding: 10px 14px; border: 1px solid #e5d6b4; border-radius: 8px; background: #fbf7ed; color: #49534e; }
.finance-demo-banner > i { color: #a67c2e; font-size: 20px; }
.finance-demo-banner div { display: grid; gap: 2px; flex: 1; }
.finance-demo-banner strong { color: #24342e; font-size: 12px; }
.finance-demo-banner span { font-size: 10px; line-height: 1.5; }
.finance-demo-tag { flex: none; padding: 4px 8px; border: 1px solid #d9c28f; border-radius: 4px; color: #806222; font-weight: 700; }
.finance-metrics { display: grid; grid-template-columns: 1.05fr 1.28fr 1.1fr 1fr .95fr; border: 1px solid #d9e1dd; border-radius: 8px; overflow: hidden; background: #fff; }
.finance-metrics button { min-width: 0; display: grid; gap: 5px; padding: 13px 15px; border: 0; border-right: 1px solid #e2e7e4; background: #fff; text-align: left; cursor: pointer; }
.finance-metrics button:last-child { border-right: 0; }
.finance-metrics button:hover, .finance-metrics button.active { background: #f0f7f3; box-shadow: inset 0 3px #0d7655; }
.finance-metrics small { color: #74817b; font-size: 10px; }
.finance-metrics strong { color: #172c25; font-size: 20px; letter-spacing: -.3px; }
.finance-metrics span { overflow: hidden; color: #8b9691; font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }
.finance-panel { overflow: hidden; border: 1px solid #d9e1dd; border-radius: 8px; background: #fff; }
.finance-toolbar { display: grid; grid-template-columns: minmax(170px,1.3fr) minmax(150px,1fr) 128px 108px 102px minmax(250px,1.25fr) 54px; gap: 8px; padding: 12px 14px; border-bottom: 1px solid #e5e9e7; }
.finance-search, .finance-date { height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid #d8dfdc; border-radius: 6px; color: #76817c; background: #fff; }
.finance-search input, .finance-date input { min-width: 0; width: 100%; border: 0; outline: 0; color: #293730; background: transparent; font: inherit; font-size: 10px; }
.finance-date input { width: 92px; }
.finance-date span { font-size: 9px; }
.finance-toolbar select, .finance-reset { height: 34px; padding: 0 9px; border: 1px solid #d8dfdc; border-radius: 6px; color: #43514b; background: #fff; font-size: 10px; }
.finance-reset { color: #176c50; font-weight: 700; cursor: pointer; }
.finance-rule-strip { min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 7px 14px; border-bottom: 1px solid #e6ebe8; color: #617069; background: #f5f8f6; font-size: 9px; }
.finance-rule-strip > i { color: #177354; font-size: 14px; }
.finance-rule-strip span { flex: 1; }
.finance-rule-strip b { color: #25483b; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.finance-rule-strip button { padding: 6px 9px; border: 1px solid #d8dfdc; border-radius: 5px; color: #8b9691; background: #eef2f0; font-size: 9px; }
.finance-workarea { display: grid; grid-template-columns: minmax(0,1fr) 258px; min-height: 470px; }
.finance-table-area { min-width: 0; border-right: 1px solid #dfe5e2; }
.finance-table-scroll { overflow-x: auto; }
.finance-table { width: 100%; min-width: 1050px; border-collapse: collapse; table-layout: fixed; }
.finance-table th { height: 37px; padding: 0 9px; border-bottom: 1px solid #e3e8e5; color: #76817c; background: #fbfcfb; font-size: 9px; font-weight: 600; text-align: left; white-space: nowrap; }
.finance-table th:nth-child(1) { width: 146px; }
.finance-table th:nth-child(2) { width: 68px; }
.finance-table th:nth-child(3), .finance-table th:nth-child(4), .finance-table th:nth-child(5), .finance-table th:nth-child(6), .finance-table th:nth-child(7) { width: 82px; }
.finance-table th:nth-child(8) { width: 82px; }
.finance-table th:nth-child(9) { width: 92px; }
.finance-table th:nth-child(10) { width: 106px; }
.finance-table th:nth-child(11) { width: 65px; }
.finance-table td { height: 61px; padding: 8px 9px; border-bottom: 1px solid #edf0ee; color: #314039; font-size: 9px; vertical-align: middle; }
.finance-table tbody tr { cursor: pointer; transition: background .15s; }
.finance-table tbody tr:hover { background: #f6faf8; }
.finance-table tbody tr.selected { background: #fff7f2; box-shadow: inset 3px 0 #c8543d; }
.finance-table td strong { display: block; color: #20322b; font-size: 10px; }
.finance-table td small { display: block; margin-top: 3px; color: #89938e; font-size: 8px; line-height: 1.4; }
.finance-source-tag { display: inline-block; margin-top: 3px; padding: 1px 4px; border: 1px solid #d8e4de; border-radius: 3px; color: #4d7364; background: #f1f7f4; font-size: 7px; }
.finance-service { display: inline-flex; padding: 3px 5px; border-radius: 4px; color: #735c23; background: #f7f0dd; font-size: 8px; font-weight: 700; }
.finance-service.premium { color: #17674d; background: #e7f3ed; }
.finance-status, .finance-risk { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.finance-status::before, .finance-risk::before { width: 5px; height: 5px; border-radius: 50%; background: #82908a; content: ''; }
.finance-status.pending::before { background: #c9922b; }.finance-status.ready::before,.finance-status.settled::before { background: #15805d; }.finance-status.frozen::before { background: #bd4b38; }
.finance-risk.low { color: #587068; }.finance-risk.low::before { background: #6d9082; }.finance-risk.medium { color: #9b6d17; }.finance-risk.medium::before { background: #c28c27; }.finance-risk.high { color: #b54332; font-weight: 700; }.finance-risk.high::before { background: #c54b37; }
.finance-pagination { height: 46px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; color: #77837d; font-size: 9px; }
.finance-pagination div { display: flex; gap: 5px; align-items: center; }
.finance-pagination select, .finance-pagination button { height: 25px; border: 1px solid #dce2df; border-radius: 4px; color: #59665f; background: #fff; font-size: 8px; }
.finance-pagination button { min-width: 25px; }.finance-pagination button.active { color: #fff; border-color: #116e51; background: #116e51; }
.finance-empty { min-height: 250px; display: grid; place-items: center; align-content: center; gap: 6px; color: #8b9691; }.finance-empty[hidden] { display: none; }.finance-empty i { font-size: 25px; }.finance-empty strong { color: #4d5b55; }
.finance-review { min-width: 0; padding: 14px; background: #fcfdfc; }
.finance-review header { display: flex; justify-content: space-between; gap: 8px; padding-bottom: 11px; border-bottom: 1px solid #e0e6e3; }
.finance-review header span { color: #177152; font-size: 9px; font-weight: 700; }.finance-review header h2 { margin: 4px 0 0; color: #1f3029; font-size: 16px; }.finance-review header .finance-risk { align-self: flex-start; padding: 4px 6px; border: 1px solid #efc3ba; border-radius: 4px; background: #fff2ef; font-size: 8px; }
.finance-review-block { padding: 11px 0; border-bottom: 1px solid #e6ebe8; }
.finance-review-block h3 { margin: 0 0 8px; color: #516059; font-size: 9px; font-weight: 700; }
.finance-review-block dl { display: grid; grid-template-columns: 72px 1fr; gap: 6px 8px; margin: 0; font-size: 9px; }.finance-review-block dt { color: #89938e; }.finance-review-block dd { margin: 0; color: #2e3d36; text-align: right; }.finance-review-block dd strong { color: #172d25; }
.finance-formula { padding: 8px; border: 1px solid #dbe6e0; border-radius: 5px; color: #215540; background: #f0f7f3; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 8px; line-height: 1.65; }
.finance-evidence { display: grid; gap: 6px; }.finance-evidence span { display: flex; align-items: center; gap: 6px; color: #506059; font-size: 9px; }.finance-evidence i { color: #177254; }.finance-evidence .warn, .finance-evidence .warn i { color: #b34c39; }
.finance-review-note { margin: 9px 0 0; padding: 8px; border-left: 3px solid #bf4b38; color: #70483f; background: #fff4f1; font-size: 8px; line-height: 1.6; }
.finance-review-actions { display: grid; gap: 7px; margin-top: 12px; }.finance-review-actions button { min-height: 34px; border: 1px solid #0f7253; border-radius: 6px; color: #fff; background: #0f7253; font-size: 9px; font-weight: 700; cursor: pointer; }.finance-review-actions button.secondary { color: #176c50; background: #fff; }.finance-review-actions button:focus-visible, .finance-toolbar input:focus-visible, .finance-toolbar select:focus-visible { outline: 2px solid #c89e48; outline-offset: 2px; }
.finance-chain { margin-top: 10px; padding: 10px; border: 1px solid #dce5e0; border-radius: 6px; background: #fff; }.finance-chain h3 { margin: 0 0 9px; color: #43534c; font-size: 9px; }.finance-chain ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }.finance-chain li { position: relative; display: grid; grid-template-columns: 10px 1fr; gap: 7px; min-height: 36px; }.finance-chain li > i { width: 7px; height: 7px; margin-top: 3px; border: 2px solid #fff; border-radius: 50%; background: #177354; box-shadow: 0 0 0 1px #177354; }.finance-chain li:not(:last-child)::after { position: absolute; top: 12px; bottom: -1px; left: 3px; width: 1px; background: #cbd9d2; content: ''; }.finance-chain li.warn > i { background: #be4b38; box-shadow: 0 0 0 1px #be4b38; }.finance-chain strong,.finance-chain small { display: block; }.finance-chain strong { color: #293a33; font-size: 9px; }.finance-chain small { margin-top: 2px; color: #85908b; font-size: 8px; line-height: 1.35; }
@media (max-width: 1320px) { .finance-toolbar { grid-template-columns: minmax(150px,1fr) minmax(130px,.9fr) 120px 98px 92px minmax(210px,1fr) 50px; gap: 6px; padding-inline: 10px; }.finance-workarea { grid-template-columns: minmax(0,1fr) 240px; } }

/* 接单报价审核：摄影师提交只读，AI 预检，人工最终确认 */
body.package-audit-page .smart-assistant { display: none; }
.pricing-review-drawer[hidden], .pricing-compare-panel[hidden] { display: none !important; }
.pricing-review-drawer { min-height: 0; font-size: 10px; }
.pricing-review-header { display: flex; min-height: 118px; flex: 0 0 118px; align-items: flex-start; justify-content: space-between; padding: 17px 26px 13px; border-bottom: 1px solid #e2e8e4; }
.pricing-review-header > div > span { color: #087858; font-size: 9px; font-weight: 800; letter-spacing: .05em; }
.pricing-review-title-row { display: flex; align-items: center; gap: 8px; margin-top: 5px; }
.pricing-review-title-row h2 { margin: 0 8px 0 0; color: #15231d; font-size: 19px; line-height: 1.3; }
.pricing-review-title-row img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; }
.pricing-review-title-row b { color: #4e5b55; font-size: 9px; font-weight: 650; }
.pricing-review-header p { display: flex; align-items: center; gap: 9px; margin: 6px 0; color: #7b8781; font-size: 9px; }
.pricing-review-header p i { width: 1px; height: 9px; background: #d3dcd7; }
.pricing-review-statuses { display: flex; gap: 6px; }
.pricing-review-statuses em { padding: 4px 8px; border: 1px solid; border-radius: 5px; font-style: normal; font-size: 8px; font-weight: 750; }
.pricing-review-statuses .ai-pass { color: #0a7755; border-color: #b9ddcf; background: #eef8f4; }
.pricing-review-statuses .human-pending { color: #a16809; border-color: #f0d19d; background: #fff8eb; }
.pricing-review-statuses .online-version { color: #53615b; border-color: #d8e0dc; background: #f5f7f6; }
.pricing-review-header > button { display: grid; width: 34px; height: 34px; place-items: center; border: 0; border-radius: 7px; color: #44524b; background: #fff; font-size: 18px; }
.pricing-review-header > button:hover { background: #f3f6f4; }
.pricing-readonly-note { display: flex; min-height: 34px; flex: 0 0 34px; align-items: center; gap: 7px; margin: 0; padding: 0 26px; color: #65736c; background: #f5f8f6; font-size: 9px; }
.pricing-readonly-note i { color: #8c7448; }
.pricing-review-tabs { min-height: 43px; flex: 0 0 43px; }
.pricing-review-body { display: grid; flex: 1; min-height: 0; grid-template-columns: minmax(0,1fr) 455px; overflow: hidden; }
.pricing-config-column, .pricing-review-column { min-width: 0; overflow: auto; padding: 17px 20px 24px; scrollbar-width: thin; scrollbar-color: #ccd7d1 transparent; }
.pricing-config-column { background: #fbfcfb; }
.pricing-review-column { border-left: 1px solid #e0e7e3; background: #fff; }
.pricing-section, .pricing-ai-section, .pricing-human-section { margin-bottom: 11px; padding: 13px 15px; border: 1px solid #dfe6e2; border-radius: 8px; background: #fff; }
.pricing-section > header, .pricing-ai-section > header, .pricing-human-section > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.pricing-section h3, .pricing-ai-section h3, .pricing-human-section h3 { margin: 0; color: #1d2b25; font-size: 11px; }
.pricing-section > header > span { padding: 3px 7px; border-radius: 4px; color: #087858; background: #ecf7f2; font-size: 8px; font-weight: 700; }
.pricing-section > header > span.off { color: #69766f; background: #eef1ef; }
.default-mode-section { display: flex; align-items: center; justify-content: space-between; }
.default-mode-options { display: flex; gap: 7px; }
.default-mode-options span { display: flex; align-items: center; gap: 5px; padding: 7px 10px; border: 1px solid #dce4df; border-radius: 6px; color: #5e6a64; }
.default-mode-options span.active { color: #087858; border-color: #79b6a0; background: #f0f8f4; font-weight: 700; }
.pricing-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1px; margin: 11px 0 0; overflow: hidden; border: 1px solid #e3e8e5; border-radius: 6px; background: #e3e8e5; }
.pricing-fields.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.pricing-fields > div { min-width: 0; padding: 8px 9px; background: #fff; }
.pricing-fields > div.wide { grid-column: span 2; }
.pricing-fields dt { margin-bottom: 4px; color: #7b8781; font-size: 8px; }
.pricing-fields dd { overflow: hidden; margin: 0; color: #26332d; font-size: 10px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.pricing-formula { display: flex; gap: 10px; margin: 8px 0 0; padding: 7px 9px; border-radius: 5px; color: #52615a; background: #f5f8f6; font-size: 8px; }
.pricing-formula b { color: #187457; white-space: nowrap; }
.custom-pricing-section > strong { display: block; margin: 10px 0 8px; font-size: 11px; }
.custom-pricing-facts { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid #e4e9e6; border-radius: 6px; }
.custom-pricing-facts span { display: grid; gap: 3px; padding: 8px; border-right: 1px solid #e4e9e6; }
.custom-pricing-facts span:last-child { border-right: 0; }
.custom-pricing-facts b { color: #223129; font-size: 11px; }
.custom-pricing-facts small { color: #7c8781; font-size: 8px; }
.custom-pricing-section > p, .gift-pricing-section > p { margin: 8px 0 0; color: #53615a; line-height: 1.5; }
.gift-pricing-section > small { display: block; margin-top: 4px; color: #89938e; }
.pricing-version-impact { display: flex; gap: 9px; margin: 0; padding: 10px 12px; border: 1px solid #e8dfc8; border-radius: 7px; color: #665b45; background: #fcfaf4; line-height: 1.5; }
.pricing-version-impact > i { color: #9a7835; font-size: 14px; }
.pricing-version-impact b { display: block; color: #4e4739; }
.pricing-ai-section { padding: 15px; border-color: #cbded6; background: #f8fcfa; }
.pricing-ai-section > header > span { padding: 4px 8px; border-radius: 5px; color: #087858; background: #e6f4ee; font-weight: 750; }
.pricing-ai-section dl { display: grid; gap: 9px; margin: 12px 0; }
.pricing-ai-section dl > div { display: grid; grid-template-columns: 62px 1fr; }
.pricing-ai-section dt { color: #718078; }
.pricing-ai-section dd { margin: 0; color: #34433c; font-weight: 650; }
.pricing-ai-section dd p { margin: 0 0 7px; font-weight: 500; line-height: 1.4; }
.pricing-ai-section dd p i { margin-right: 6px; color: #0b8a62; }
.pricing-ai-section dd p.warning { padding: 8px; border: 1px solid #efd49d; border-radius: 6px; color: #76520e; background: #fff8e9; }
.pricing-ai-section dd p.warning i { color: #d18a08; }
.pricing-ai-formulas { padding: 10px; border: 1px solid #dce5e1; border-radius: 6px; background: #fff; }
.pricing-ai-formulas p { margin: 5px 0 0; color: #617069; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 8px; }
.pricing-ai-section footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 11px; }
.pricing-ai-section footer small { color: #7b8881; }
.pricing-ai-section footer button, .pricing-escalate { min-height: 28px; border: 1px solid #d3ded8; border-radius: 5px; color: #306c57; background: #fff; font-size: 8px; }
.pricing-ai-section footer button { margin-left: 5px; }
.pricing-human-section > header small { color: #77837d; }
.pricing-human-decisions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0 9px; }
.pricing-human-decisions button { height: 42px; border: 1px solid #dce4df; border-radius: 7px; color: #53615a; background: #fff; font-size: 10px; font-weight: 700; }
.pricing-human-decisions button i { margin-right: 6px; }
.pricing-human-decisions button.active { color: #087858; border-color: #62aa8f; background: #eef8f3; }
.pricing-decision-impact { margin: 0 0 10px; padding: 8px 9px; border-radius: 6px; color: #286b54; background: #eef7f3; line-height: 1.45; }
.pricing-decision-impact i { margin-right: 6px; }
.pricing-human-section label { position: relative; display: grid; gap: 6px; color: #45524c; font-weight: 700; }
.pricing-human-section label > span { color: #84908a; font-weight: 400; }
.pricing-human-section textarea { min-height: 66px; padding: 9px; border: 1px solid #d9e2dd; border-radius: 6px; resize: vertical; outline: 0; font: inherit; font-weight: 400; }
.pricing-human-section label > small { position: absolute; right: 8px; bottom: 7px; color: #929d97; font-weight: 400; }
.pricing-escalate { width: 100%; margin-top: 9px; }
.pricing-escalate i { float: right; margin: 1px 6px 0 0; }
.pricing-review-actions { min-height: 66px; flex: 0 0 66px; padding: 10px 20px; }
.pricing-review-actions p { margin: 0; color: #748078; font-size: 8px; }
.pricing-review-actions p i { margin-right: 5px; color: #8c7448; }
.pricing-review-actions > div { gap: 7px; }
.pricing-review-actions button { height: 37px; padding: 0 13px; font-size: 9px; }
.pricing-review-actions button.reject { color: #b1433b; border-color: #ecc4c0; background: #fff7f6; }
.pricing-review-actions .primary { min-width: 142px; }
.pricing-compare-panel { flex: 1; min-height: 0; overflow: auto; padding: 24px 26px; background: #fbfcfb; }
.pricing-panel-heading h3 { margin: 0 0 5px; font-size: 15px; }.pricing-panel-heading p { margin: 0; color: #7a8680; }
.pricing-version-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 20px 0; }
.pricing-version-columns article { padding: 18px; border: 1px solid #dce4df; border-radius: 8px; background: #fff; }.pricing-version-columns article > span { color: #6f7d76; }.pricing-version-columns strong { display: block; margin: 10px 0; font-size: 15px; }.pricing-version-columns ins { color: #087858; text-decoration: none; background: #e8f5ef; }.pricing-version-columns em { color: #a56b08; font-size: 9px; }
.pricing-ai-full { display: grid; place-items: center; gap: 10px; margin-top: 28px; padding: 48px; border: 1px solid #cfe0d8; border-radius: 9px; background: #f7fbf9; text-align: center; }.pricing-ai-full > i { color: #087858; font-size: 34px; }.pricing-ai-full strong { font-size: 14px; }.pricing-ai-full p { color: #68756e; }
@media (max-width: 1280px) { .resource-drawer.package-review-mode { width: min(900px, calc(100vw - 220px)); }.pricing-review-body { grid-template-columns: minmax(0,1fr) 420px; }.pricing-config-column,.pricing-review-column { padding-inline: 15px; }.pricing-review-actions p { display: none; } }
@media (max-width: 980px) { .resource-drawer.package-review-mode { width: calc(100vw - 36px); }.pricing-review-body { grid-template-columns: 1fr; overflow: auto; }.pricing-config-column,.pricing-review-column { overflow: visible; }.pricing-review-column { border-top: 1px solid #e0e7e3; border-left: 0; }.pricing-review-actions > div { margin-left: auto; } }

/* 服务城市仍属于统一后台，保留全局导航，避免进入页面后失去模块切换能力。 */
body.spots-page .sidebar { display: flex; }
body.spots-page .ops-workspace { margin-left: 252px; }
@media (max-width: 1180px) { body.spots-page .ops-workspace { margin-left: 218px; } }
@media (max-width: 820px) { body.spots-page .ops-workspace { margin-left: 76px; } }
@media (max-width: 620px) { body.spots-page .ops-workspace { margin-left: 0; } }

/* Platform-curated tourist spot editor */
.resource-drawer.spot-editor-mode {
  width: min(820px, calc(100vw - 310px));
  overflow: hidden;
  color: #21312b;
  background: #fff;
  box-shadow: -20px 0 54px rgba(9, 38, 29, .16);
}
body:has(.resource-drawer.spot-editor-mode.open) .drawer-backdrop {
  background: rgba(15, 30, 24, .34);
  backdrop-filter: blur(2px);
}
.spot-editor { display: flex; height: 100vh; flex-direction: column; background: #fff; }
.spot-editor[hidden] { display: none; }
.spot-editor-header {
  display: flex;
  min-height: 72px;
  flex: 0 0 72px;
  align-items: center;
  justify-content: space-between;
  padding: 15px 28px 13px;
  border-bottom: 1px solid #dfe6e2;
  background: #fff;
}
.spot-editor-header > div > span { color: #117554; font-size: 11px; font-weight: 750; }
.spot-editor-title-line { display: flex; align-items: center; gap: 12px; margin-top: 3px; }
.spot-editor-title-line h2 { margin: 0; color: #182620; font-size: 21px; letter-spacing: -.02em; }
.spot-editor-title-line em { display: inline-flex; align-items: center; gap: 6px; color: #62716b; font-size: 11px; font-style: normal; }
.spot-editor-title-line em i { width: 7px; height: 7px; border-radius: 50%; background: #c99939; }
.spot-editor-title-line em.saved i { background: #1b8b65; }
.spot-editor-header p { margin: 5px 0 0; color: #77817c; font-size: 11px; }
.spot-editor-header > button, .spot-preview-modal > button {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 0;
  border-radius: 7px;
  color: #45534d;
  background: transparent;
  font-size: 20px;
}
.spot-editor-header > button:hover, .spot-preview-modal > button:hover { background: #f1f4f2; }
.spot-editor-scroll { flex: 1; overflow-y: auto; padding: 2px 28px 16px; scrollbar-gutter: stable; }
.spot-form-section { padding: 12px 0 14px; border-bottom: 1px solid #e5eae7; }
.spot-form-section:last-child { border-bottom: 0; }
.spot-section-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.spot-section-heading > div { display: flex; align-items: center; gap: 9px; }
.spot-section-heading > div > i { color: #157858; font-size: 18px; }
.spot-section-heading h3 { margin: 0; color: #1f2e28; font-size: 14px; }
.spot-section-heading > span { color: #84908a; font-size: 10px; }
.spot-section-heading > span b, .spot-form-grid label > b { color: #b1443d; }
.spot-form-grid { display: grid; gap: 10px 13px; }
.spot-form-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.spot-form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.spot-form-grid .span-2 { grid-column: span 2; }
.spot-form-grid label { min-width: 0; color: #46534d; font-size: 10px; font-weight: 650; }
.spot-form-grid input, .spot-form-grid select {
  display: block;
  width: 100%;
  height: 34px;
  margin-top: 5px;
  padding: 0 11px;
  border: 1px solid #d6dfda;
  border-radius: 7px;
  outline: 0;
  color: #2d3b35;
  background: #fff;
  font: inherit;
  font-size: 11px;
}
.spot-form-grid select { appearance: auto; }
.spot-form-grid input:focus, .spot-form-grid select:focus { border-color: #34866a; box-shadow: 0 0 0 3px rgba(26, 126, 91, .1); }
.spot-map { position: relative; height: 245px; overflow: hidden; border: 1px solid #d7e0db; border-radius: 9px; background: #edf2ef; }
.spot-map > img { width: 100%; height: 100%; object-fit: cover; }
.spot-map > button { position: absolute; top: 12px; right: 12px; width: 78px; height: 32px; border: 0; border-radius: 6px; opacity: 0; }
.spot-map > button i { margin-right: 5px; }
.spot-map-zoom { display: none; }
.spot-map-zoom button { width: 30px; height: 29px; border: 0; color: #35433d; background: #fff; font-size: 16px; }
.spot-map-zoom button + button { border-top: 1px solid #e2e7e4; }
.spot-coordinate-row { display: flex; min-height: 38px; align-items: center; gap: 28px; padding: 0 12px; border: 1px solid #dfe6e2; border-top: 0; border-radius: 0 0 8px 8px; color: #66736d; font-size: 10px; }
.spot-coordinate-row span:first-child { flex: 1; }
.spot-coordinate-row span i { margin-right: 5px; color: #16805c; }
.spot-coordinate-row b { color: #35433d; font-weight: 650; }
.spot-coordinate-row > strong { color: #16805c; font-size: 10px; }
.spot-coordinate-row > strong i { margin-right: 5px; }
.spot-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.spot-gallery figure { position: relative; height: 104px; margin: 0; overflow: hidden; border-radius: 8px; background: #edf1ef; }
.spot-gallery figure img { width: 100%; height: 100%; object-fit: cover; }
.spot-gallery figcaption { position: absolute; left: 8px; bottom: 8px; padding: 4px 7px; border-radius: 4px; color: #fff; background: rgba(13,62,46,.82); font-size: 9px; }
.spot-gallery > button { display: grid; height: 104px; place-content: center; gap: 4px; border: 1px dashed #b9cac2; border-radius: 8px; color: #36715b; background: #f8fbf9; }
.spot-gallery > button i { font-size: 20px; }
.spot-gallery > button span { font-size: 10px; font-weight: 700; }
.spot-gallery > button small { color: #929b97; font-size: 9px; }
.spot-quality-note { display: flex; align-items: flex-start; gap: 10px; margin: 10px 0 0; padding: 9px 12px; border: 1px solid #e2e8e5; border-radius: 8px; color: #65716c; background: #f7f9f8; font-size: 10px; line-height: 1.45; }
.spot-quality-note > i { margin-top: 1px; color: #8b7651; font-size: 15px; }
.spot-quality-note span, .spot-quality-note b { display: block; }
.spot-quality-note b { margin-bottom: 2px; color: #3b4842; }
.spot-editor-actions { display: flex; min-height: 68px; flex: 0 0 68px; align-items: center; justify-content: space-between; gap: 18px; padding: 10px 28px; border-top: 1px solid #dce4df; background: rgba(255,255,255,.98); }
.spot-editor-actions p { max-width: 240px; margin: 0; color: #728079; font-size: 9px; line-height: 1.5; }
.spot-editor-actions p i { margin-right: 5px; color: #9a7a3b; }
.spot-editor-actions > div { display: flex; align-items: center; gap: 9px; }
.spot-editor-actions button { height: 39px; padding: 0 15px; border: 1px solid #d1dbd6; border-radius: 7px; color: #405049; background: #fff; font-size: 11px; font-weight: 700; }
.spot-editor-actions button.secondary { border-color: #bdd2c8; color: #126f51; background: #eef7f3; }
.spot-editor-actions button.primary { min-width: 112px; border-color: #0d7654; color: #fff; background: #0d7654; }
.spot-editor-actions button:hover { transform: translateY(-1px); }
.spot-editor-actions button:disabled { cursor: wait; opacity: .55; transform: none; }
.spot-preview-modal { position: fixed; z-index: 55; inset: 0; display: grid; place-items: center; background: rgba(11,27,21,.48); backdrop-filter: blur(3px); }
.spot-preview-modal[hidden] { display: none; }
.spot-preview-modal > button { position: absolute; top: 24px; right: 28px; color: #fff; background: rgba(255,255,255,.16); }
.spot-phone-preview { width: 330px; overflow: hidden; border: 8px solid #13251e; border-radius: 28px; background: #fbfaf6; box-shadow: 0 26px 80px rgba(3,16,11,.34); }
.spot-phone-preview > header { display: flex; height: 50px; align-items: center; justify-content: space-between; padding: 0 15px; color: #21302a; background: #fff; font-size: 12px; }
.spot-phone-preview > header span { font-size: 22px; }
.spot-phone-preview > img { width: 100%; height: 218px; object-fit: cover; }
.spot-phone-preview main { padding: 18px 18px 24px; }
.spot-phone-preview main > small { color: #87714b; font-size: 10px; }
.spot-phone-preview h2 { margin: 5px 0 12px; color: #17251f; font-size: 22px; }
.spot-phone-preview main > div { display: flex; gap: 6px; }
.spot-phone-preview main > div span { padding: 5px 7px; border-radius: 5px; color: #176f52; background: #e9f4ef; font-size: 9px; }
.spot-phone-preview main p { display: grid; grid-template-columns: 18px 62px 1fr; margin: 15px 0 0; color: #596660; font-size: 10px; line-height: 1.5; }
.spot-phone-preview main p i { color: #a98236; font-size: 14px; }

body.spots-page #review-filter { display: none; }
body.spots-page .compact-stats { grid-template-columns: 1fr; min-height: 132px; }
body.spots-page .compact-stats > section + section { border-left: 0; }
body.spots-page .compact-stats section > div { grid-template-columns: repeat(4, 1fr); }
body.spots-page .resource-table th:nth-child(1) { width: 30%; }
body.spots-page .resource-table th:nth-child(2) { width: 10%; }
body.spots-page .resource-table th:nth-child(3) { width: 12%; }
body.spots-page .resource-table th:nth-child(4) { width: 11%; }
body.spots-page .resource-table th:nth-child(5) { width: 12%; }
body.spots-page .resource-table th:nth-child(6) { width: 14%; }
body.spots-page .resource-table th:nth-child(7) { width: 11%; }

@media (max-width: 1180px) {
  .resource-drawer.spot-editor-mode { width: min(780px, calc(100vw - 76px)); }
  .spot-form-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .spot-gallery { grid-template-columns: repeat(4, minmax(120px, 1fr)); overflow-x: auto; }
}
@media (max-width: 760px) {
  .resource-drawer.spot-editor-mode { width: 100vw; }
  .spot-editor-header, .spot-editor-actions { padding-inline: 18px; }
  .spot-editor-scroll { padding-inline: 18px; }
  .spot-form-grid-3, .spot-form-grid-4 { grid-template-columns: 1fr; }
  .spot-form-grid .span-2 { grid-column: auto; }
  .spot-editor-actions { align-items: flex-end; }
  .spot-editor-actions p { display: none; }
}
.kaban-finance-view{display:grid;gap:14px;min-width:0}.kaban-finance-view[hidden]{display:none}.kaban-compliance{min-height:48px;display:flex;align-items:center;gap:10px;padding:0 16px;border:1px solid #d6e4dc;border-radius:10px;background:#f3f8f5;color:#4d6258;font-size:12px}.kaban-compliance>i{font-size:19px;color:#087655}.kaban-compliance strong{color:#173b30}.kaban-compliance b{margin-left:auto;padding:6px 9px;border-radius:6px;background:#e5f2eb;color:#12684e;font-size:11px;white-space:nowrap}.kaban-balance-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid #dfe6e2;border-radius:12px;background:#fff;overflow:hidden}.kaban-balance-metrics button{position:relative;display:grid;gap:3px;min-height:96px;padding:16px 18px;text-align:left;border:0;border-right:1px solid #e6ebe8;background:#fff;color:#19352c;cursor:pointer}.kaban-balance-metrics button:last-child{border-right:0}.kaban-balance-metrics button:focus-visible,.kaban-finance-view button:focus-visible,.kaban-finance-view input:focus-visible,.kaban-finance-view select:focus-visible{outline:3px solid rgba(8,118,85,.22);outline-offset:1px}.kaban-balance-metrics button.active{background:#f1f8f4}.kaban-balance-metrics button.active:before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:#087655}.kaban-balance-metrics small{font-size:11px;color:#718078}.kaban-balance-metrics strong{font-size:21px;line-height:1.3;font-variant-numeric:tabular-nums}.kaban-balance-metrics span{font-size:10px;color:#87938d}.kaban-ledger-panel{min-width:0;border:1px solid #dfe6e2;border-radius:12px;background:#fff;overflow:hidden}.kaban-finance-toolbar{display:grid;grid-template-columns:minmax(210px,1.7fr) 150px 145px 116px minmax(250px,1.25fr) 56px;gap:8px;padding:12px;border-bottom:1px solid #e7ece9}.kaban-search,.kaban-date{display:flex;align-items:center;gap:7px;height:36px;padding:0 10px;border:1px solid #dce4df;border-radius:7px;background:#fff}.kaban-search i{color:#829088}.kaban-search input,.kaban-date input{min-width:0;width:100%;border:0;outline:0;background:transparent;font:inherit;color:#243c34}.kaban-date{gap:5px;padding:0 7px}.kaban-date input{font-size:10px}.kaban-date span{color:#97a19c;font-size:10px}.kaban-finance-toolbar select,.kaban-reset{height:36px;border:1px solid #dce4df;border-radius:7px;background:#fff;padding:0 9px;color:#4a5f56;font:inherit;font-size:11px}.kaban-reset{cursor:pointer;color:#087655}.kaban-rule-strip{display:flex;align-items:center;gap:8px;min-height:38px;padding:0 13px;border-bottom:1px solid #e7ece9;background:#fbfcfb;color:#607069;font-size:11px}.kaban-rule-strip>i{color:#087655}.kaban-rule-strip button{margin-left:auto;border:0;background:transparent;color:#087655;font-weight:700;cursor:pointer;white-space:nowrap}.kaban-finance-workarea{display:grid;grid-template-columns:minmax(0,1fr) 292px;min-height:480px}.kaban-table-area{display:flex;min-width:0;flex-direction:column;border-right:1px solid #e5ebe7}.kaban-table-scroll{position:relative;min-width:0;overflow:auto;flex:1}.kaban-finance-table{width:100%;min-width:1040px;border-collapse:collapse;font-size:11px}.kaban-finance-table th{position:sticky;top:0;z-index:1;height:42px;padding:0 10px;text-align:left;background:#fafbfa;color:#6b7972;font-weight:600;border-bottom:1px solid #e5ebe7;white-space:nowrap}.kaban-finance-table td{height:74px;padding:9px 10px;border-bottom:1px solid #edf0ee;vertical-align:middle;color:#2b4138}.kaban-finance-table tr{cursor:pointer}.kaban-finance-table tr:hover{background:#f7faf8}.kaban-finance-table tr.selected{background:#eef7f2;box-shadow:inset 3px 0 #087655}.kaban-finance-table tr.risk-row{background:#fff8f7}.kaban-finance-table tr.risk-row.selected{background:#fff1ef;box-shadow:inset 3px 0 #bd4037}.kaban-finance-table td>strong{display:block;font-size:12px;color:#172f27;font-variant-numeric:tabular-nums;white-space:nowrap}.kaban-finance-table td>small{display:block;margin-top:4px;color:#87918c;font-size:9px;white-space:nowrap}.kaban-finance-table td>em{display:inline-block;margin-top:5px;padding:2px 5px;border:1px solid #dfe7e2;border-radius:4px;color:#728078;font-size:8px;font-style:normal}.kaban-source,.kaban-stage,.kaban-risk{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:700;white-space:nowrap}.kaban-source{background:#f3f1e8;color:#756129}.kaban-source.repeat{background:#edf4f7;color:#3b6573}.kaban-source.invite{background:#f0edf7;color:#675486}.kaban-stage.pending{background:#eef3f1;color:#64736c}.kaban-stage.observing{background:#fff5dc;color:#7e6116}.kaban-stage.available{background:#e8f5ed;color:#087655}.kaban-stage.frozen{background:#fdecea;color:#a43a33}.kaban-stage.withdrawing{background:#eaf2f8;color:#3e6480}.kaban-risk{gap:4px}.kaban-risk:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.kaban-risk.low{background:#eef4f1;color:#5c7268}.kaban-risk.high{background:#fdecea;color:#b43e36}.kaban-pagination{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 12px;border-top:1px solid #e7ece9;color:#7e8a84;font-size:10px}.kaban-pagination>div{display:flex;align-items:center;gap:5px}.kaban-pagination select,.kaban-pagination button{height:26px;border:1px solid #dde5e0;border-radius:5px;background:#fff;color:#5e6f67}.kaban-pagination button{width:26px}.kaban-pagination button.active{background:#087655;color:#fff;border-color:#087655}.kaban-finance-empty,.kaban-inspector-empty{display:grid;place-items:center;align-content:center;gap:7px;min-height:300px;color:#819088;text-align:center}.kaban-finance-empty i,.kaban-inspector-empty i{font-size:27px;color:#9ca9a2}.kaban-finance-empty span,.kaban-inspector-empty span{font-size:11px}.kaban-finance-inspector{min-width:0;padding:14px;background:#fcfdfc;color:#294038;overflow:auto}.kaban-finance-inspector>header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid #e1e8e4}.kaban-finance-inspector header span{color:#087655;font-size:9px;font-weight:700}.kaban-finance-inspector h2{margin:4px 0 0;font-size:15px}.kaban-finance-inspector section{padding:13px 0;border-bottom:1px solid #e5ebe7}.kaban-finance-inspector h3{margin:0 0 9px;font-size:11px;color:#50655b}.kaban-formula{display:grid;grid-template-columns:1fr auto;gap:5px 8px;padding:10px;border:1px solid #dfe7e2;border-radius:8px;background:#fff;font-size:10px}.kaban-formula strong{text-align:right;font-variant-numeric:tabular-nums}.kaban-formula i{grid-column:1/-1;color:#8a958f;font-style:normal;font-size:9px}.kaban-formula hr{grid-column:1/-1;width:100%;border:0;border-top:1px dashed #dce4df}.kaban-exclusion{margin:7px 0 0;color:#76847d;font-size:9px}.kaban-exclusion i{margin-right:4px}.kaban-evidence{display:grid;gap:6px}.kaban-evidence span{display:flex;align-items:flex-start;gap:6px;padding:7px 8px;border-radius:6px;background:#f2f7f4;color:#50645a;font-size:9px}.kaban-evidence span i{color:#16845f;font-size:13px}.kaban-evidence span.warn{background:#fff0ee;color:#91423d}.kaban-evidence span.warn i{color:#c14b42}.kaban-timeline{display:grid;gap:0;margin:0;padding:0;list-style:none}.kaban-timeline li{position:relative;display:flex;align-items:center;gap:8px;min-height:27px;color:#62736b;font-size:9px}.kaban-timeline li:not(:last-child):before{content:"";position:absolute;left:4px;top:17px;bottom:-3px;width:1px;background:#cddbd4}.kaban-timeline li>i{z-index:1;width:9px;height:9px;border:2px solid #80aa97;border-radius:50%;background:#fff}.kaban-timeline li.frozen>i{border-color:#be443c;background:#fdecea}.kaban-timeline li.available>i{border-color:#087655;background:#087655}.kaban-freeze-note{margin-top:9px;padding:9px;border-left:3px solid #bd4037;border-radius:5px;background:#fff3f1;font-size:9px}.kaban-freeze-note strong{color:#9e3933}.kaban-freeze-note p{margin:5px 0;color:#654743;line-height:1.5}.kaban-freeze-note small,.kaban-freeze-note b{display:block;margin-top:4px;color:#8b625e;font-weight:500}.kaban-inspector-actions{display:grid;gap:7px;padding-top:14px}.kaban-inspector-actions button{min-height:36px;border:1px solid #087655;border-radius:7px;background:#087655;color:#fff;font-weight:700;cursor:pointer}.kaban-inspector-actions button.secondary{background:#fff;color:#087655}.kaban-inspector-actions button:disabled{opacity:.65;cursor:default}.kaban-full-chain{margin-top:10px;padding:10px!important;border:1px solid #d9e6df!important;border-radius:8px;background:#f3f8f5}.kaban-full-chain p{margin:0;color:#40574d;font-size:9px;line-height:1.6}.kaban-full-chain small{display:block;margin-top:6px;color:#718178;font-size:8px;line-height:1.5}

@media(max-width:1320px){.kaban-finance-toolbar{grid-template-columns:minmax(190px,1.5fr) 138px 132px 108px minmax(225px,1fr) 50px}.kaban-finance-workarea{grid-template-columns:minmax(0,1fr) 254px}.kaban-finance-inspector{padding:12px}.kaban-balance-metrics button{padding:14px 13px}.kaban-balance-metrics strong{font-size:18px}.kaban-finance-table{min-width:980px}.kaban-finance-table th,.kaban-finance-table td{padding-left:8px;padding-right:8px}}
.kaban-finance-empty[hidden]{display:none}

/* Review moderation — read-only content, AI evidence, human decision */
body.reviews-page .works-header-create{display:none}
body.reviews-page .compact-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:108px;margin-bottom:16px;padding:0;overflow:hidden;border-radius:12px}
body.reviews-page .compact-stats>button{display:grid;grid-template-columns:1fr auto;align-content:center;gap:5px 12px;min-height:108px;padding:18px 24px;border:0;border-right:1px solid #e4e9e6;background:#fff;color:#59675f;text-align:left;cursor:pointer}
body.reviews-page .compact-stats>button:last-child{border-right:0}
body.reviews-page .compact-stats>button:hover{background:#f7faf8}
body.reviews-page .compact-stats>button:focus-visible{outline:3px solid rgba(9,113,82,.22);outline-offset:-3px}
body.reviews-page .compact-stats>button span{font-size:13px;font-weight:700}
body.reviews-page .compact-stats>button strong{grid-row:1/3;grid-column:2;font-size:28px;line-height:1;color:#183229;font-variant-numeric:tabular-nums}
body.reviews-page .compact-stats>button small{font-size:11px;color:#8a9690}
body.reviews-page #list-view>.panel{overflow:hidden;border-radius:12px}
body.reviews-page .resource-toolbar{min-height:64px;padding:11px 16px;gap:10px;background:#fff}
body.reviews-page .search-field{min-width:320px;height:40px}
body.reviews-page .resource-toolbar>select,body.reviews-page .works-reset{height:40px;border-radius:8px}
body.reviews-page #review-filter,body.reviews-page #review-audit-risk-filter{min-width:150px}
body.reviews-page .result-count{margin-left:auto}
body.reviews-page .resource-table{min-width:1100px}
body.reviews-page .resource-table th{height:46px;padding:0 14px;background:#f8faf9;color:#68766f;font-size:11px}
body.reviews-page .resource-table td{height:110px;padding:14px;border-bottom:1px solid #e8ecea;vertical-align:middle;font-size:11px}
body.reviews-page .resource-table tr.review-audit-row{cursor:pointer}
body.reviews-page .resource-table tr.review-audit-row:hover{background:#f7faf8}
body.reviews-page .resource-table tr.review-audit-row.risk{background:#fffdf8}
body.reviews-page .resource-table tr.review-audit-row.risk:hover{background:#fff9ee}
body.reviews-page .resource-table th:nth-child(1){width:28%}
body.reviews-page .resource-table th:nth-child(2){width:13%}
body.reviews-page .resource-table th:nth-child(3){width:18%}
body.reviews-page .resource-table th:nth-child(4){width:16%}
body.reviews-page .resource-table th:nth-child(5){width:11%}
.review-row-copy{display:grid;gap:5px;max-width:300px}.review-row-copy>strong{color:#1d342b;font-size:13px}.review-row-copy p{margin:0;color:#59675f;line-height:1.55;display:-webkit-box;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.review-row-stars{display:flex;gap:2px;color:#d8ddda;font-size:12px}.review-row-stars i.active,.review-stars i.active{color:#d89b18}
.review-risk-chip,.review-ai-tag,.review-human-state{display:inline-flex;width:max-content;align-items:center;border-radius:5px;font-weight:700;white-space:nowrap}
.review-risk-chip{padding:3px 6px;color:#ad4b23;background:#fff0df;font-size:9px}
.review-ai-tag{padding:5px 7px;font-size:10px}.review-ai-tag.risk{color:#a94a20;background:#fff0dd}.review-ai-tag.passed{color:#17684e;background:#e8f4ed}.review-ai-tag.appeal{color:#32658a;background:#eaf2f8}
.review-audit-row td>small,.review-audit-row td>span+small,.review-parties-compact small{display:block;margin-top:5px;color:#8b9690;font-size:9px;line-height:1.45}
.review-human-state{gap:5px;padding:4px 7px;font-size:10px}.review-human-state:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.review-human-state.pending{color:#a86c13;background:#fff7e5}.review-human-state.approved{color:#167053;background:#e9f5ef}.review-human-state.rejected{color:#af4238;background:#fcebe8}.review-human-state.appeal{color:#3d6481;background:#eaf2f8}
.review-parties-compact{display:grid;gap:7px}.review-parties-compact>span{display:grid;grid-template-columns:26px 1fr;column-gap:7px;align-items:center}.review-parties-compact img{grid-row:1/3;width:26px;height:26px;border-radius:50%;object-fit:cover}.review-parties-compact b{color:#2a4137;font-size:10px}.review-parties-compact small{margin:0}
.resource-drawer.review-audit-mode{width:min(520px,calc(100vw - 78px));background:#fbfcfb}.review-audit-form{display:flex;height:100%;flex-direction:column}.review-audit-form[hidden]{display:none}
.review-audit-header{display:flex;min-height:90px;align-items:flex-start;justify-content:space-between;padding:18px 22px;border-bottom:1px solid #e3e8e5;background:#fff}.review-audit-header>div>span{color:#087255;font-size:10px;font-weight:800}.review-audit-header>div>div{display:flex;align-items:baseline;gap:10px;margin-top:4px}.review-audit-header h2{margin:0;color:#162f26;font-size:19px}.review-audit-header em{color:#7b8781;font-size:10px;font-style:normal}.review-audit-header p{margin:5px 0 0;color:#87928d;font-size:10px}.review-audit-header button{display:grid;width:32px;height:32px;place-items:center;border:0;border-radius:6px;color:#53625b;background:transparent;font-size:19px;cursor:pointer}
.review-audit-scroll{flex:1;overflow:auto;padding:0 22px 22px}.review-audit-section{padding:17px 0;border-bottom:1px solid #e4e9e6}.review-audit-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.review-audit-section-title h3{margin:0;color:#233a31;font-size:12px}.review-audit-section-title>span,.review-audit-section-title>button{border:0;color:#77857e;background:transparent;font-size:9px}.review-audit-section-title>button{color:#087255;font-weight:700;cursor:pointer}.review-audit-section-title>div{display:flex;gap:6px}.review-audit-section-title>div span{padding:4px 7px;border:1px solid #eadcb7;border-radius:5px;color:#8b6b1d;background:#fffaf0;font-size:9px}.review-audit-section-title>div span.risk{border-color:#f2d6ba;color:#b14f22;background:#fff2e2}.review-audit-section-title>div span.passed{border-color:#cfe5da;color:#176a4f;background:#edf7f2}.review-audit-section-title>div span.appeal{border-color:#cfdfeb;color:#396681;background:#eff5f9}
.review-stars{display:flex;gap:3px;margin-bottom:8px;color:#d8ddda;font-size:14px}.review-copy-section>blockquote{margin:0;padding:13px 14px;border:1px solid #dfe5e2;border-radius:8px;color:#273d34;background:#fff;font-size:12px;line-height:1.65}
.review-order-number{margin:0 0 10px;padding:8px 10px;border-radius:6px;color:#52645b;background:#f3f7f5;font-size:10px}.review-parties{display:grid;grid-template-columns:1fr 24px 1fr;align-items:center}.review-parties article{display:flex;align-items:center;gap:9px}.review-parties>i{color:#a4aea9}.review-parties img{width:36px;height:36px;border-radius:50%;object-fit:cover}.review-parties strong,.review-parties span{display:block}.review-parties strong{color:#263d34;font-size:11px}.review-parties span{margin-top:3px;color:#85918b;font-size:9px}
.ai-review-card{margin-top:14px;padding:14px;border:1px solid #e1e6e3;border-radius:9px;background:#fff}.ai-review-card .review-audit-section-title>span{padding:4px 7px;border-radius:5px;font-weight:700}.ai-review-card .review-audit-section-title>span.risk{color:#a94a20;background:#fff0dd}.ai-review-card .review-audit-section-title>span.passed{color:#17684e;background:#e8f4ed}.ai-review-card .review-audit-section-title>span.appeal{color:#32658a;background:#eaf2f8}.ai-review-card dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.ai-review-card dl>div{padding:8px;border-radius:6px;background:#f7f9f8}.ai-review-card dt{color:#89948f;font-size:8px}.ai-review-card dd{margin:3px 0 0;color:#334a40;font-size:10px;font-weight:700}.ai-review-card>blockquote{margin:10px 0 0;padding:10px;border-left:3px solid #d99a39;border-radius:4px;background:#fff7e9;color:#66543d;font-size:10px;line-height:1.55}.ai-review-card mark{padding:2px 4px;color:#b34a20;background:#ffead1}.ai-review-card>p{display:flex;gap:6px;margin:10px 0 0;color:#87918c;font-size:9px}
.review-audit-flow{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none}.review-audit-flow li{position:relative;display:grid;justify-items:center;gap:5px;text-align:center}.review-audit-flow li:not(:last-child):after{content:"";position:absolute;left:calc(50% + 16px);right:calc(-50% + 16px);top:12px;height:1px;background:#cfdbd5}.review-audit-flow li>i{z-index:1;display:grid;width:25px;height:25px;place-items:center;border:1px solid #b8ccc2;border-radius:50%;color:#5e7f70;background:#fff}.review-audit-flow li.done>i{color:#087255;border-color:#8fc2ad;background:#edf7f2}.review-audit-flow li.current>i{color:#8a6616;border-color:#e0be68;background:#fff8df}.review-audit-flow strong,.review-audit-flow small{display:block}.review-audit-flow strong{color:#42564d;font-size:9px}.review-audit-flow small{margin-top:3px;color:#8b9690;font-size:8px}
.review-audit-note{position:relative;display:block;margin-top:18px;color:#465a51;font-size:10px;font-weight:700}.review-audit-note b{color:#b54138}.review-audit-note textarea{width:100%;margin-top:7px;padding:11px;border:1px solid #d9e1dd;border-radius:8px;outline:none;resize:vertical;color:#283e35;background:#fff;font:inherit;font-weight:400;line-height:1.55}.review-audit-note textarea:focus{border-color:#1b7a5c;box-shadow:0 0 0 3px rgba(9,113,82,.1)}.review-audit-note>small{position:absolute;right:9px;bottom:8px;color:#929d97;font-size:8px;font-weight:400}
.review-audit-actions{display:flex;gap:8px;padding:14px 22px;border-top:1px solid #e1e7e3;background:#fff}.review-audit-actions button{min-height:38px;flex:1;border:1px solid #168060;border-radius:7px;color:#087255;background:#fff;font-size:10px;font-weight:800;cursor:pointer}.review-audit-actions button.danger{color:#bb3e35;border-color:#d95c53}.review-audit-actions button.primary{color:#fff;border-color:#087255;background:#087255}.review-audit-actions button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:1280px){body.reviews-page .search-field{min-width:220px}.resource-drawer.review-audit-mode{width:min(490px,calc(100vw - 72px))}body.reviews-page .resource-table{min-width:920px}body.reviews-page .resource-table th,body.reviews-page .resource-table td{padding-left:10px;padding-right:10px}body.reviews-page .resource-table th:nth-child(1){width:26%}body.reviews-page .resource-table th:nth-child(2){width:12%}body.reviews-page .resource-table th:nth-child(3){width:17%}body.reviews-page .resource-table th:nth-child(4){width:15%}body.reviews-page .resource-table th:nth-child(5){width:10%}body.reviews-page .resource-table th:nth-child(6){width:11%}body.reviews-page .resource-table th:nth-child(7){width:9%}}
@media(max-width:760px){.resource-drawer.review-audit-mode{width:100vw}.review-audit-header,.review-audit-actions{padding-inline:16px}.review-audit-scroll{padding-inline:16px}}

/* Service cities — compact operating overview */
body.spots-page .compact-stats{display:block;min-height:0;margin-bottom:14px;padding:0;overflow:hidden}
body.spots-page .compact-stats>.spot-metric-section{display:grid;grid-template-columns:188px minmax(0,1fr);align-items:stretch;min-width:0;padding:0}
body.spots-page .spot-metric-intro{display:flex;align-items:center;gap:12px;padding:18px 20px;border-right:1px solid #e2e8e5;background:#f6faf8}
body.spots-page .spot-metric-intro>i{display:grid;width:38px;height:38px;place-items:center;flex:0 0 38px;border-radius:9px;color:#087255;background:#e2f1e9;font-size:21px}
body.spots-page .compact-stats .spot-metric-intro h2{margin:0;color:#1d3129;font-size:15px}
body.spots-page .spot-metric-intro p{margin:5px 0 0;color:#728079;font-size:10px;white-space:nowrap}
body.spots-page .compact-stats section.spot-metric-section:last-child>div.spot-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
body.spots-page .compact-stats .spot-metric-grid button{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:88px;padding:13px 15px;border:0;border-right:1px solid #e7ebe9;color:#53615a;background:#fff;text-align:left;cursor:pointer}
body.spots-page .compact-stats .spot-metric-grid button:last-child{border-right:0}
body.spots-page .compact-stats .spot-metric-grid button:hover{background:#f8fbf9}
body.spots-page .compact-stats .spot-metric-grid button.active{box-shadow:inset 0 -3px #087255;background:#f1f8f4}
body.spots-page .spot-metric-grid button>i{display:grid;width:32px;height:32px;place-items:center;border-radius:8px;color:#5d7067;background:#f0f4f2;font-size:17px}
body.spots-page .spot-metric-grid button[data-stat-status="published"]>i{color:#087255;background:#e5f3eb}
body.spots-page .spot-metric-grid button[data-stat-status="draft"]>i{color:#9a6b24;background:#fbf2df}
body.spots-page .spot-metric-grid button[data-stat-status="offline"]>i{color:#737d78;background:#eef0ef}
body.spots-page .compact-stats .spot-metric-grid button>span{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:2px 8px;font-size:inherit}
body.spots-page .spot-metric-grid small{color:#506059;font-size:11px;font-weight:650}
body.spots-page .spot-metric-grid strong{grid-row:1/3;grid-column:2;color:#152b23;font-size:23px;font-weight:700}
body.spots-page .spot-metric-grid em{color:#8a9690;font-size:9px;font-style:normal;white-space:nowrap}
body.spots-page #list-view>.panel{border-radius:10px}
body.spots-page .spots-panel-heading{min-height:58px;padding:0 18px}
body.spots-page .spots-panel-heading h2{font-size:16px}
body.spots-page .spots-panel-heading p,body.spots-page .spots-panel-heading>span{font-size:11px}
body.spots-page .resource-toolbar{min-height:66px;padding:10px 16px;gap:10px;border-bottom:1px solid #edf0ee}
body.spots-page .search-field{min-width:260px;height:40px}
body.spots-page .resource-toolbar>select,body.spots-page .works-reset{min-width:138px;height:40px;font-size:11px}
body.spots-page .table-wrap{overflow:auto}
@media(max-width:1180px){body.spots-page .compact-stats>.spot-metric-section{grid-template-columns:150px minmax(0,1fr)}body.spots-page .spot-metric-intro{padding:14px}body.spots-page .compact-stats .spot-metric-grid button{grid-template-columns:1fr;gap:5px;padding:10px}body.spots-page .spot-metric-grid button>i{display:none}body.spots-page .spot-metric-grid em{white-space:normal}}
/* Kaban phase 2: persistent platform/city context and governance workspaces */
.city-context-select{display:flex;align-items:center;gap:8px;height:48px;padding:0 12px;border:1px solid #d9e1dd;border-radius:10px;background:#fff;color:#65716d;white-space:nowrap}
.city-context-select span{font-size:12px;font-weight:700;color:#71807a}
.city-context-select select{min-width:76px;border:0;background:transparent;color:#15342a;font-weight:800;outline:none}
.app-context-bar .context-city{margin-left:14px;padding-left:16px;border-left:1px solid #d8e3de;color:#64736d;font-size:13px}
.app-context-bar .context-city b{color:#0c6f53}
.kaban-ops-view{display:grid;gap:16px}
.kaban-module-alert{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid #eadfbd;border-radius:12px;background:#fffaf0;color:#29473d}
.kaban-module-alert>i{font-size:22px;color:#a87813}
.kaban-module-alert div{display:grid;gap:3px}.kaban-module-alert strong{font-size:14px}.kaban-module-alert span{font-size:12px;color:#7a817e}
.kaban-module-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #dfe7e3;border-radius:14px;background:#fff;overflow:hidden}
.kaban-module-metrics article{display:grid;gap:7px;padding:20px 22px;border-right:1px solid #e5ebe8}.kaban-module-metrics article:last-child{border:0}
.kaban-module-metrics small{font-size:13px;color:#75807c}.kaban-module-metrics strong{font-size:26px;color:#142d25;letter-spacing:-.03em}
.kaban-module-panel{overflow:hidden;padding:0!important}
.kaban-module-panel>header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 22px;border-bottom:1px solid #e4e9e7}
.kaban-module-panel>header h2{margin:0 0 5px;font-size:18px;color:#173228}.kaban-module-panel>header p{margin:0;color:#7b8682;font-size:13px}
.demo-data-badge{padding:5px 9px;border-radius:6px;background:#f1f5f3;color:#68756f;font-size:11px;font-weight:700}
.kaban-module-toolbar{display:flex;gap:10px;padding:14px 20px;border-bottom:1px solid #e6ebe8;background:#fbfcfb}
.kaban-module-toolbar label{display:flex;align-items:center;gap:8px;flex:1;max-width:620px;padding:0 12px;border:1px solid #dce4e0;border-radius:9px;background:#fff}
.kaban-module-toolbar input{width:100%;height:40px;border:0;outline:none;background:transparent}.kaban-module-toolbar select,.kaban-module-toolbar button{height:42px;padding:0 14px;border:1px solid #dce4e0;border-radius:9px;background:#fff;color:#365047}
.kaban-module-table-wrap{overflow:auto}.kaban-module-table-wrap table{width:100%;border-collapse:collapse;min-width:900px}
.kaban-module-table-wrap th{padding:13px 18px;background:#f7f9f8;color:#6f7d77;font-size:12px;text-align:left;white-space:nowrap}
.kaban-module-table-wrap td{padding:16px 18px;border-top:1px solid #e7ece9;color:#53615c;font-size:13px;white-space:nowrap}.kaban-module-table-wrap td strong{color:#18352b}
.kaban-module-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:52px;color:#7b8782}
@media(max-width:1320px){.topbar-controls{gap:8px}.city-context-select{height:44px;padding:0 8px}.city-context-select span{display:none}.city-context-select select{min-width:62px}.kaban-module-metrics article{padding:16px}.kaban-module-metrics strong{font-size:22px}}
