.feedback-modal.ant-modal .ant-modal-content,
.feedback-modal.ant-modal .ant-modal-container {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 72px),
    #1c1d24;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35),
    0 18px 40px rgba(0, 0, 0, 0.4),
    0 40px 80px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.feedback-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.fb-panel {
  padding: 8px 24px 22px;
  color: #fff;
}

.fb-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 58px;
  margin-bottom: 6px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.fb-head h3 {
  margin: 0;
  font-size: 17px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.96);
}

.fb-x {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  cursor: pointer;
}

.fb-x:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.fb-label {
  display: block;
  margin: 18px 0 10px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 14px;
  font-weight: 600;
}

.fb-label.is-required::before {
  content: '*';
  margin-right: 4px;
  color: #ff5d73;
}

.fb-area {
  position: relative;
}

.fb-area .ant-input {
  min-height: 112px !important;
  padding: 12px 14px 28px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 10px !important;
  background: rgba(0, 0, 0, 0.28) !important;
  color: #fff !important;
  box-shadow: none !important;
  resize: none;
}

.fb-area .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.fb-area .ant-input:hover,
.fb-area .ant-input:focus {
  border-color: rgba(255, 45, 194, 0.45) !important;
}

.fb-area em {
  position: absolute;
  right: 12px;
  bottom: 8px;
  color: rgba(255, 255, 255, 0.32);
  font-size: 12px;
  font-style: normal;
}

.feedback-modal .fb-input.ant-input {
  height: 44px;
  padding: 0 14px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 10px !important;
  background: rgba(0, 0, 0, 0.28) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.feedback-modal .fb-input.ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.feedback-modal .fb-input.ant-input:hover,
.feedback-modal .fb-input.ant-input:focus {
  border-color: rgba(255, 45, 194, 0.45) !important;
}

.fb-upload-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fb-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.fb-upload {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 32px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  cursor: pointer;
}

.fb-upload:hover {
  border-color: rgba(255, 45, 194, 0.4);
  color: #fff;
}

.fb-upload-row > span {
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}

.fb-shots {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 14px;
}

.fb-shot {
  position: relative;
  width: 96px;
  height: 96px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
}

.fb-shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.fb-shot button {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.62);
  color: #fff;
  font-size: 10px;
  cursor: pointer;
}

.fb-shot button:hover {
  background: rgba(0, 0, 0, 0.82);
}

.fb-submit {
  width: 100%;
  height: 44px;
  margin-top: 22px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 15px;
  font-weight: 650;
  letter-spacing: 0.12em;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(255, 45, 194, 0.22);
}

.fb-submit:hover {
  filter: brightness(1.06);
}
/* 协议弹窗：只做排版，颜色跟随主题 */
.legal-doc {
  font-size: 13px;
  line-height: 1.85;
}

.legal-meta {
  margin-bottom: 14px;
  padding-bottom: 12px;
  font-size: 12px;
  opacity: 0.55;
  border-bottom: 1px solid rgba(128, 128, 128, 0.25);
}

.legal-meta-split {
  margin: 0 8px;
}

.legal-section + .legal-section {
  margin-top: 14px;
}

.legal-section h3 {
  margin: 0 0 6px;
  font-size: 13.5px;
  font-weight: 600;
}

.legal-section p {
  margin: 0 0 6px;
  text-align: justify;
}

.legal-section p:last-child {
  margin-bottom: 0;
}
.user-menu-popover {
  z-index: 1200 !important;
}

.user-menu-popover.ant-popover .ant-popover-inner,
.user-menu-popover .ant-popover-inner,
.user-menu-popover .ant-popover-container {
  padding: 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow: visible !important;
}

.user-menu-popover .ant-popover-inner-content {
  padding: 0 !important;
  background: transparent !important;
}

.user-menu-panel {
  width: 200px;
  padding: 10px 8px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 12px;
  background: #2c2d35;
  color: rgba(255, 255, 255, 0.9);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06),
    0 12px 28px rgba(0, 0, 0, 0.55),
    0 28px 56px rgba(0, 0, 0, 0.35);
}

.user-menu-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 2px 6px;
  padding: 8px 10px 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  font-size: 14px;
  font-weight: 550;
  color: #fff;
}

.user-menu-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 36px;
  padding: 0 10px;
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
}

.user-menu-row.is-toggle {
  margin-bottom: 2px;
}

.user-menu-row .ant-switch {
  min-width: 36px;
  background: rgba(255, 255, 255, 0.2);
}

.user-menu-row .ant-switch.ant-switch-checked {
  background: #ff3d9a;
}

.user-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 36px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.user-menu-item .anticon {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.48);
}

.user-menu-item:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.user-menu-item:hover .anticon {
  color: rgba(255, 255, 255, 0.82);
}

.user-menu-split {
  height: 1px;
  margin: 6px 10px;
  background: rgba(255, 255, 255, 0.1);
}
.studio {
  display: flex;
  height: 100vh;
  min-width: 1024px;
  overflow: hidden;
  background: #0b0b0f;
  color: #f3f3f6;
}

.studio-sider {
  width: 220px;
  flex: 0 0 220px;
  display: flex;
  flex-direction: column;
  height: 100vh;
  background:
    url('data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gHYSUNDX1BST0ZJTEUAAQEAAAHIAAAAAAQwAABtbnRyUkdCIFhZWiAH4AABAAEAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAACRyWFlaAAABFAAAABRnWFlaAAABKAAAABRiWFlaAAABPAAAABR3dHB0AAABUAAAABRyVFJDAAABZAAAAChnVFJDAAABZAAAAChiVFJDAAABZAAAAChjcHJ0AAABjAAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAAgAAAAcAHMAUgBHAEJYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9YWVogAAAAAAAA9tYAAQAAAADTLXBhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABtbHVjAAAAAAAAAAEAAAAMZW5VUwAAACAAAAAcAEcAbwBvAGcAbABlACAASQBuAGMALgAgADIAMAAxADb/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAQAAPADASIAAhEBAxEB/8QAGwABAQEBAQEBAQAAAAAAAAAAAAIBAwQGBQn/xAAjEAEBAQEAAwEAAgMAAwAAAAAAAQIREiExQVFhAxNxMoGR/8QAGgEBAQEBAQEBAAAAAAAAAAAAAAIBAwQFBv/EABgRAQEBAQEAAAAAAAAAAAAAAAABEQIS/9oADAMBAAIRAxEAPwD+bEi5lsipl2x75Eyf03xXI2Z63FzlHieLp4t8Gtxz8WeLr4dZ4Dcc/Fly63CfEZ5c7lNy68TYzEWOXuHOrsTc8SixKdRf1l9VmIsc7OMXYmzjEWIsTXRFiUVNjFVNYloyVvRJQKDAAAAfpyLmWzK5l6cfVkTMq8VzLZhuLkRMt8XSYb4NV5cvE8XbxrLkw8uPim5d7lNyzGXlwuU2cdrlNyzEWOFnU2O2sos6xzscdZZ9dLEaylzsTU6i7PTE1zrkyr1EsRYixNnpdibEuaWsoxNaB8GMG1gAAP25FzLc5dM5et9uRMyuZbIqRUjpOU+LeKmFeEVi/Lnw46eE/hlwY3y58Tcutym//GYi8uNyi5eixzuU452OGsueo76zxGomxyscLEWOuojU6hyscbOMq9RP9JcrE1zs461GkudRU34tOoyudRWKTUorfwICRje8KDAAfR5yuTjJF5nXukfoJCZ77XMtzl1zhUjvIiY6rwdJnqp/jVjpOXLwTcPR/rZcNxvl5rlGs9em5c9Z4nHO8vPZypsdtZcrOVNcbHLWXLUejUctRFceo4ajnY76jlqe0VwscbHO+q7ajnqIrjU36ir/ABNTXKudZZ6VpNY51FTV1NShkaxrEBQoMAB9PPbpnKMT312xPj6EfpeYvGee3XGOpzPbvnP4uR6OYZz/AAqYXjPp0zhcj0Tlx/1puHq8Eaw3G3l5dZ9OWs8ereXHcRY49R5tZ447nXp1HHURXn6jjZ6c9R1rnqenOvN1HDUctR31HLSK4Vxsc7HWudn1FcOnP+WNvqsqXKo1Eq0lLlUVNXfqKlzrP1rGxiaAfgxgAPqcT074jjj47YfRj9Py7/4474nXD/G9GPx0j18u2I65y54dsukermHijWXa8456bV9R5t5cNz69O/159udeXp59z24bj0b+uG/1zrydOOv/ACc9OmvsRpzrzdOO3LTrpy0515+nLTnfq9fUX6iuHTlfrL+t19Zr6lxqdIXpCXKp0mq0mpc6mtZWxiafpQGMAB9Tj474rz5vt2xX0I/Tc16MV3xePNm8ds6dI9XNerGnbOnlxr06TbpK9PPTv5f2jWvSPNOtttVembrhu/V611x3pztefquer7cNX667vpx3XOvL1XPX1z0u/a57qK8/Tnpy06a+uWnOvN05X6i/V1zqK49Od+srf1lS41OvSFaSlyqdIXUVLnWNjGxiQCjGAA+m7+uudOMqpef8e+P0fNenGvx1zrjzZ06Ta47yvVnS5t5ppU2rXadPR5punH/Z6Zdmnpet/wAOetM1r+XPW02ud6ZvXXLVbrTnfaa4dUtctVeq5brnXDqo1XLVdNVy1UVwtRq/XPXxenPVTXDpLK2/E1FcqnSW6vtNY51N+pvxVTUubGsaxBAAYAD6LOnSX088rpnT2Svuyu01xc04yt6vXadO83xU24TbfNur9O/my7cfOM8zW+nW6RrSbbU94zUXpt/tNvGXSNaTa5WmtOVrbeueqlxtZqudrdXqNX8Q5WptR3tbqp/EuNpai1qdVNc6msrU2pcqmstL7ZUoI0OiQpxgAAP25VzXHCaXNPVr68rvNKmnCVU23XWdO803ycZo8v7bqvTt1nlxz8mXX9t09Ol0y6c7pN0zU3pd0i6Tam6Si1utOetM1pNqXO0tRbwtRb2prlazvay1t9M6muVqbfqL9VqpYi1lTa3VTU1zrKz9BiK0D4MKxtYAAD9OVU05SqmnfX0pXWaXNOHl1XbFavXaaPL+3Hzb5Gt128meTl5nma3XTyZdOd0zpqdVdpuustTbWJtbam1lqLbU652tt9s+Hxl9sRaVNvot5EW9qUWjLeNRWVztZayjKxB9aQYk/AKDAAAAeztippEvGz26vZrpK3ycvcb5N1WuvkeTn5Hm3Va6eR5OfmeZp6X5MtR5HlazWaq6TdM/9neMTp/06y1nWJtGWsuk29Ym0t6CbWItLep6WstYgt6yDYxNABgxtYAAAAD1Stl65dVNLenVt6ia9N63W6rp2J6dNbqvR6T06aa3p1nWdNZqus6m6ZdMZqu8TdMt6CdGd4WptZqbW2p+lrOsSVg1idA6DAGAAAAAAA69ajpNK101Z1Pk3orW9b5J6NNV08qnp0Nb0Z08mGtYzrLTWarqbWdZWM1vWd9HWdYkDjRmkgAwGsAYAAAAAAAN634kFa2VvU9b0G9b1PTrWq6dSdYK6zrOnRjWdZ3oGtZ0bwZrGyEOjACegA6wAAAAAAAAAAG8AA4zjQGcGgMONAZw4pn0DhA6AdAAKAfBgAAAAAAAAAAAADetSA0OnQPwOnQI1nToAdOgRqQGnWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Z') left top / cover no-repeat,
    #111116;
  border-right: 1px solid rgba(255, 255, 255, 0.04);
  transition: width 0.2s ease, flex-basis 0.2s ease;
}

.studio-sider.is-collapsed {
  width: 72px;
  flex-basis: 72px;
}

.studio-brand {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 64px;
  padding: 0 12px 0 18px;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.studio-brand-left {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}

.studio-brand-left img {
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
}

.studio-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 12px;
}

.studio-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 40px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14px;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
}

.studio-nav-item:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.04);
}

.studio-nav-item.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.studio-nav-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.7;
}

.studio-nav-item:hover .studio-nav-icon,
.studio-nav-item.active .studio-nav-icon {
  opacity: 1;
}

.studio-nav-split {
  height: 1px;
  margin: 10px 12px;
  background: rgba(255, 255, 255, 0.08);
}

.studio-sider-foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(6px, 0.56vw, 9px);
  padding: clamp(12px, 1.11vw, 18px) clamp(10px, 0.97vw, 16px) clamp(16px, 1.39vw, 22px);
}

.studio-user {
  display: flex;
  align-items: center;
  gap: clamp(6px, 0.56vw, 9px);
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(12px, 0.9vw, 14px);
  cursor: pointer;
}

/* 头像：1440 设计基准 36×36（提高优先级压过 antd 默认 32px） */
.studio-sider-foot .studio-user .ant-avatar {
  width: clamp(30px, 2.5vw, 38px);
  height: clamp(30px, 2.5vw, 38px);
  line-height: clamp(30px, 2.5vw, 38px);
  font-size: clamp(12px, 0.9vw, 14px);
}

.studio-user span {
  max-width: clamp(80px, 6.67vw, 104px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: clamp(20px, 1.67vw, 26px);
}

.studio-bell {
  width: clamp(28px, 2.22vw, 34px);
  height: clamp(28px, 2.22vw, 34px);
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
}

/* 铃铛图标：1440 设计基准 24×24 */
.studio-bell img {
  width: clamp(20px, 1.67vw, 26px);
  height: clamp(20px, 1.67vw, 26px);
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.95;
}

.studio-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.studio-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: clamp(56px, 4.44vw, 68px);
  padding: 0 clamp(18px, 1.94vw, 28px) 0 clamp(28px, 2.78vw, 40px);
}

.studio-page-title {
  margin: 0;
  color: #fff;
  font-size: clamp(22px, 1.6vw, 28px);
  font-weight: 750;
  line-height: 1.2;
  min-height: 1.2em;
}

.studio-page-title.is-studio-title {
  font-size: 18px;
  font-weight: 650;
}

.studio-collapse {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.studio-collapse img {
  width: 18px;
  height: 18px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.9;
}

.studio-points {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 12px 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  background: #1a1a20;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
  font-family: inherit;
  outline: none;
}

.studio-points b {
  color: #3ee58b;
  font-variant-numeric: tabular-nums;
}

.studio-coin {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff6b0, #f5c542 42%, #d29a12);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.studio-body {
  flex: 1;
  /* 1440 设计基准：左右内边距随视口等比，避免大屏内容贴边、小屏挤压 */
  padding: 8px clamp(20px, 2.22vw, 32px) clamp(24px, 2.22vw, 32px) clamp(28px, 2.78vw, 40px);
  overflow: auto;
}

.studio-placeholder {
  padding: 48px 8px;
  color: rgba(255, 255, 255, 0.55);
}

.studio-placeholder h1 {
  margin: 0 0 8px;
  color: #fff;
  font-size: 24px;
}

.studio-sider.is-collapsed .studio-brand-left span,
.studio-sider.is-collapsed .studio-nav-item span,
.studio-sider.is-collapsed .studio-user span {
  display: none;
}

.studio-sider.is-collapsed .studio-brand {
  flex-direction: column;
  justify-content: center;
  height: auto;
  min-height: 64px;
  padding: 14px 8px 10px;
  gap: 8px;
}

.studio-sider.is-collapsed .studio-brand-left {
  display: flex;
  justify-content: center;
}

.studio-sider.is-collapsed .studio-brand-left img {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
}

.studio-sider.is-collapsed .studio-nav-item {
  justify-content: center;
  padding-left: 0;
  padding-right: 0;
}

.studio-sider.is-collapsed .studio-sider-foot {
  flex-direction: column;
}

@media (max-width: 1279px) {
  .studio-sider {
    width: 196px;
    flex-basis: 196px;
  }

  .studio-top {
    padding-left: 28px;
  }

  .studio-body {
    padding: 8px 20px 24px 28px;
  }
}

@media (min-width: 1680px) {
  .studio-sider {
    width: 232px;
    flex-basis: 232px;
  }

  .studio-top {
    padding-left: 48px;
  }

  .studio-body {
    padding: 12px 40px 40px 48px;
  }
}

/* 铃铛未读数：红色角标压在图标右上角 */
.studio-bell {
  position: relative;
}

/* 红点：1440 设计基准 8×8（未读数量在按钮 title/aria-label 中保留） */
.studio-bell-dot {
  position: absolute;
  top: -2px;
  right: -2px;
  width: clamp(7px, 0.56vw, 9px);
  height: clamp(7px, 0.56vw, 9px);
  border-radius: 50%;
  background: #ff4d4f;
}.message-drawer .ant-drawer-content,
.message-drawer .ant-drawer-section,
.message-drawer .ant-drawer-body {
  background: #161617 !important;
}

.message-center {
  display: flex;
  flex-direction: column;
  height: 100%;
  background: #161617;
  color: #fff;
}

.message-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 28px 28px 20px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.message-head h2 {
  margin: 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.02em;
}

.message-head p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.message-close {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.message-close:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.message-body {
  flex: 1;
  overflow: auto;
  padding: 4px 28px 32px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.message-body::-webkit-scrollbar {
  width: 4px;
}

.message-body::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
}

.message-group {
  padding-top: 22px;
}

.message-group + .message-group {
  margin-top: 6px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.message-group-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.message-group-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 600;
}

.message-group-head span {
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.message-list {
  display: flex;
  flex-direction: column;
}

.message-item {
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

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

.message-item-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.message-item-top h4 {
  margin: 0;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.92);
}

.message-item-top time {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.32);
  font-size: 12px;
  line-height: 1.45;
}

.message-item p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
  line-height: 1.65;
}

/* 头部右侧：全部已读 + 关闭 */
.message-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.message-read-all {
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  cursor: pointer;
}

.message-read-all:hover {
  color: #fff;
}

/* 未读消息左侧一条高亮 + 标题更亮 */
.message-item.is-unread {
  cursor: pointer;
}

.message-item.is-unread .message-item-top h4::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 6px;
  border-radius: 50%;
  background: #ff4d4f;
  vertical-align: middle;
}

.message-item.is-unread .message-item-top h4 {
  color: #fff;
}

.message-empty {
  padding: 48px 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}.studio-points {
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.studio-points:hover {
  border-color: rgba(255, 255, 255, 0.16);
  background: #22222a;
}

.studio-points b {
  color: #f5c542;
}

.points-popover.ant-popover .ant-popover-inner,
.points-popover .ant-popover-inner {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  background: #1a1a22 !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.points-popover .ant-popover-inner-content,
.points-popover .ant-popover-container {
  background: #1a1a22;
}

.points-panel {
  width: 340px;
  padding: 16px;
  color: #fff;
}

.points-summary {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.points-summary-card {
  padding: 12px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.points-summary-card span {
  display: block;
  color: rgba(255, 255, 255, 0.42);
  font-size: 12px;
}

.points-summary-card b {
  display: block;
  margin-top: 6px;
  font-size: 22px;
  font-weight: 750;
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}

.points-summary-card b.is-gold {
  color: #f5c542;
}

.points-summary-card b.is-green {
  color: #3ee58b;
}

.points-summary-card p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.32);
  font-size: 11px;
  line-height: 1.45;
}

.points-center-btn {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 40px;
  margin-top: 12px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.points-center-btn:hover {
  opacity: 0.94;
  transform: translateY(-1px);
}

.points-records {
  margin-top: 16px;
}

.points-records h4 {
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  font-weight: 500;
}

.points-records ul {
  margin: 0;
  padding: 0;
  list-style: none;
  max-height: 260px;
  overflow: auto;
  scrollbar-width: none;
}

.points-records ul::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.points-records li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.points-records li:last-child {
  border-bottom: 0;
  padding-bottom: 2px;
}

.points-records li strong {
  display: block;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
}

.points-records li time {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.32);
  font-size: 11px;
}

.points-records li em {
  flex-shrink: 0;
  font-style: normal;
  font-size: 14px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}

.points-records li em.is-cost {
  color: rgba(255, 255, 255, 0.72);
}

.points-records li em.is-gold {
  color: #f5c542;
}

.points-records li em.is-green {
  color: #3ee58b;
}

/* 没有流水时的占位：整行居中，别把空列表压成一条线 */
.points-records li.points-records-empty {
  justify-content: center;
  padding: 18px 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}
.auth-page {
  --auth-pink: #ff3d9a;
  --auth-pink-2: #ff7a62;
  --auth-muted: #8b8b96;
  --auth-text: #f5f5f7;
  --auth-input: #191a21;
  --auth-line: rgba(255, 255, 255, 0.08);
  display: grid;
  grid-template-columns: 46vw minmax(520px, 1fr);
  min-height: 100vh;
  min-width: 1024px;
  background: #07070a;
  color: var(--auth-text);
}

.auth-visual {
  position: relative;
  overflow: hidden;
  min-height: 100vh;
}

.auth-hero {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.auth-brand {
  position: absolute;
  top: clamp(16px, 2.2vw, 32px);
  left: clamp(16px, 2.2vw, 36px);
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: clamp(15px, 1.05vw, 18px);
  font-weight: 700;
  letter-spacing: 0.02em;
}

.auth-brand img {
  width: 28px;
  height: 28px;
}

.auth-panel {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  background:
    radial-gradient(circle at 1px 1px, rgba(255, 255, 255, 0.05) 1px, transparent 0) 0 0 / 28px 28px,
    #0c0c10;
  overflow: auto;
}

.auth-panel-main {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(24px, 5vh, 56px) clamp(24px, 5vw, 80px) 16px;
}

.auth-card {
  width: min(100%, 440px);
  padding: clamp(28px, 3.2vw, 40px) clamp(24px, 2.8vw, 40px) 28px;
  border: 1px solid var(--auth-line);
  border-radius: 16px;
  background: rgba(18, 18, 23, 0.88);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
  backdrop-filter: blur(18px);
}

.auth-hero-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.auth-hero-title img {
  width: 56px;
  height: 56px;
  flex-shrink: 0;
}

.auth-hero-title h1 {
  margin: 0;
  font-size: clamp(22px, 1.6vw, 28px);
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
}

.auth-subtitle {
  margin: 0 0 18px;
  color: var(--auth-muted);
  font-size: 13px;
  line-height: 1.6;
}

.auth-divider {
  height: 1px;
  margin: 0 0 18px;
  background: var(--auth-line);
  border: 0;
}

.auth-tabs {
  display: flex;
  gap: 28px;
  margin-bottom: 22px;
}

.auth-tabs button {
  padding: 0;
  border: 0;
  background: none;
  color: var(--auth-muted);
  font-size: 15px;
  cursor: pointer;
}

.auth-tabs button.active {
  color: #fff;
  font-weight: 700;
}

.auth-card .ant-form-item {
  margin-bottom: 18px;
}

.auth-card .ant-form-item-label {
  padding-bottom: 6px;
}

.auth-card .ant-form-item-label > label {
  color: #d0d0d6 !important;
  font-size: 14px;
  height: auto;
}

.auth-card .ant-input-affix-wrapper,
.auth-card .ant-input,
.auth-card .ant-input-outlined,
.auth-card .ant-input-password {
  min-height: 48px;
  background: var(--auth-input) !important;
  border: 1px solid transparent !important;
  border-radius: 10px !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: none !important;
}

.auth-card .ant-input::placeholder,
.auth-card .ant-input-password input::placeholder {
  color: #6f6f79;
}

.auth-card .ant-input-affix-wrapper:hover,
.auth-card .ant-input-affix-wrapper:focus,
.auth-card .ant-input-affix-wrapper:focus-within,
.auth-card .ant-input-affix-wrapper-focused,
.auth-card .ant-input-outlined:hover,
.auth-card .ant-input-outlined:focus,
.auth-card .ant-input-outlined:focus-within,
.auth-card .ant-input:hover,
.auth-card .ant-input:focus,
.auth-card .ant-input:focus-within {
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

.auth-card .ant-input-password .ant-input {
  min-height: 46px;
  background: transparent !important;
}

.auth-prefix {
  color: #fff;
  font-weight: 700;
  padding-right: 10px;
  margin-right: 10px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}

.auth-code-btn {
  padding: 0 0 0 12px;
  border: 0;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
  background: none;
  color: #c5c5cc;
  cursor: pointer;
  white-space: nowrap;
}

.auth-code-btn:hover:not(:disabled) {
  color: var(--auth-pink);
}

.auth-code-btn:disabled {
  color: #666;
  cursor: not-allowed;
}

.auth-card .ant-form-item:has(.ant-checkbox-wrapper) {
  margin-top: 10px;
  margin-bottom: 14px;
}

.auth-card .ant-checkbox-wrapper {
  color: #c5c5cc;
  font-size: 13px;
}

.auth-card .ant-checkbox {
  width: 16px;
  height: 16px;
  border-radius: 4px !important;
  background: transparent !important;
  border-color: #6a6a74 !important;
}

.auth-card .ant-checkbox-checked {
  background: var(--auth-pink) !important;
  border-color: var(--auth-pink) !important;
}

.auth-link {
  color: var(--auth-pink);
  cursor: pointer;
}

.auth-link:hover {
  color: #ff71b8;
}

.auth-submit {
  width: 100%;
  height: 48px !important;
  margin-top: 8px;
  border: 0 !important;
  border-radius: 10px !important;
  background: linear-gradient(90deg, var(--auth-pink-2) 0%, #ff4d8d 48%, var(--auth-pink) 100%) !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  box-shadow: 0 10px 24px rgba(255, 61, 154, 0.28);
}

.auth-submit:hover {
  filter: brightness(1.08);
}

.auth-switch {
  margin: 16px 0 0;
  text-align: center;
  color: var(--auth-muted);
  font-size: 13px;
}

.auth-legal {
  padding: 0 24px 18px;
  color: #5a5a64;
  font-size: 12px;
  line-height: 1.7;
  text-align: center;
}

.auth-protocol p {
  color: #4b5563;
  line-height: 1.7;
}

@media (min-width: 1440px) {
  .auth-card {
    width: 460px;
  }
}

@media (min-width: 1680px) {
  .auth-card {
    width: 480px;
    padding: 40px 44px 32px;
  }
}

@media (min-width: 1920px) {
  .auth-card {
    width: 500px;
  }

  .auth-hero-title img {
    width: 64px;
    height: 64px;
  }
}

@media (max-width: 1279px) {
  .auth-page {
    grid-template-columns: 38vw minmax(460px, 1fr);
  }

  .auth-card {
    width: 400px;
  }
}

@media (max-width: 1100px) {
  .auth-page {
    grid-template-columns: 1fr;
    min-width: 768px;
  }

  .auth-visual {
    display: none;
  }

  .auth-panel {
    min-height: 100vh;
    background:
      linear-gradient(180deg, rgba(7, 7, 10, 0.72), rgba(7, 7, 10, 0.88)),
      url('/assets/hero-DU_ReFVC.png') center / cover no-repeat;
  }

  .auth-card {
    width: min(420px, 100%);
  }
}
/* 安全验证弹窗（本地滑块）：深色主题，与登录页一致 */

.agent-slider-modal .ant-modal-content {
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  background: #17171c;
  box-shadow: 0 24px 70px rgba(0, 0, 0, 0.6);
}

.agent-slider-modal .ant-modal-body {
  padding: 0;
}

.agent-slider-card {
  padding: 18px 18px 16px;
  color: rgba(255, 255, 255, 0.82);
}

.agent-slider-stage {
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 8px;
  background: #101018;
}

.agent-slider-bg {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  user-select: none;
}

.agent-slider-piece {
  position: absolute;
  z-index: 2;
  object-fit: cover;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.5));
  user-select: none;
  pointer-events: none;
}

.agent-slider-refresh {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 3;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: rgba(255, 255, 255, 0.75);
  font-size: 15px;
  cursor: pointer;
}

.agent-slider-refresh:hover {
  color: #fff;
}

.agent-slider-track-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 14px auto 0;
}

.agent-slider-track {
  position: relative;
  width: 100%;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  cursor: pointer;
  touch-action: none;
}

.agent-slider-track-fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  border-radius: 999px;
  background: rgba(255, 45, 194, 0.18);
}

.agent-slider-thumb {
  position: absolute;
  top: 50%;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  transform: translateY(-50%);
  border-radius: 50%;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 100%);
  color: #fff;
  font-size: 16px;
  cursor: grab;
  box-shadow: 0 6px 16px rgba(255, 45, 194, 0.35);
}

.agent-slider-tip {
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
  text-align: center;
}

.agent-slider-loading {
  display: grid;
  min-height: 160px;
  place-items: center;
}

.agent-slider-actions {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}

.agent-slider-verify {
  flex: 1;
  height: 38px;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 100%) !important;
  color: #fff !important;
  font-size: 13px;
}

.agent-slider-verify:disabled {
  opacity: 0.45;
}

.agent-slider-cancel {
  flex: 1;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  border-radius: 999px !important;
  background: transparent !important;
  color: rgba(255, 255, 255, 0.6) !important;
  font-size: 13px;
}
.page-back-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: 72px;
  padding: 0 16px 0 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: #0d0d0d;
  color: #fff;
}

.page-back-bar.no-top {
  border-top: 0;
}

.page-back-bar-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  flex: 1;
}

.page-back-bar-back {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  cursor: pointer;
}

.page-back-bar-back img {
  width: 14px;
  height: 14px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.85;
}

.page-back-bar-back:hover {
  color: #fff;
}

.page-back-bar-back:hover img {
  opacity: 1;
}

.page-back-bar-divider {
  width: 1px;
  height: 14px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.18);
}

.page-back-bar-title {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

.page-back-bar-title h1,
.page-back-bar-title h2 {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.page-back-bar-extra {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}
/* ============================================================
   账户设置页
   视觉规范对齐全站：主渐变 #ff6b5e → #ff2dc2（胶囊按钮）、
   深色卡片 rgba(255,255,255,0.03)、输入框深色填充 + 品牌色聚焦
   ============================================================ */

.as-page {
  color: #fff;
}

.as-page .page-back-bar {
  padding-right: 32px;
  padding-left: 40px;
}

.as-page .page-back-bar-title h1 {
  font-size: 16px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.92);
}

.as-body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 24px 40px 56px;
}

/* ---------------- 卡片 ---------------- */

.as-card {
  padding: 24px 28px 28px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
}

.as-card-head {
  margin-bottom: 22px;
}

.as-card-head h2 {
  position: relative;
  margin: 0;
  padding-left: 13px;
  font-size: 15px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.92);
}

/* 标题左侧的品牌渐变竖条 */
.as-card-head h2::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 4px;
  height: 14px;
  border-radius: 2px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  transform: translateY(-50%);
}

/* ---------------- 字段 ---------------- */

/* ---------------- 信息行（label 在上、值在下） ---------------- */

.as-rows {
  display: grid;
  gap: 22px;
}

.as-id-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 64px;
}

.as-row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.as-row-label {
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

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

.as-row-value strong {
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  font-weight: 600;
  word-break: break-all;
}

.as-row-edit {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: 420px;
}

.as-row-edit .ant-input {
  flex: 1;
  max-width: 240px;
}

.as-row-edit .as-link-btn {
  height: 34px;
}

.as-dots {
  letter-spacing: 0.18em;
}

/* 编辑 / 设置 / 更换绑定：深色胶囊小按钮 */
.as-link-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.as-link-btn:hover:not(:disabled) {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.as-link-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* 小号主按钮（行内编辑用）：选择器要压过后面的 .as-save */
.as-save.as-save-sm {
  min-width: 76px;
  height: 34px;
  padding: 0 18px;
  font-size: 13px;
  font-weight: 600;
  box-shadow: none;
}

/* ---------------- 账户与安全：信息行 + 头像 ---------------- */

.as-security {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px 64px;
  align-items: start;
}

/* ---------------- 收款账户编辑 ---------------- */

.as-payee-edit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  max-width: 620px;
}

.as-payee-edit .as-payee-input.ant-input {
  max-width: none;
}

.as-payee-edit .as-actions {
  grid-column: 1 / -1;
  margin-top: 0;
}

.as-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.as-label {
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.as-hint {
  margin: 0;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}

/* ---------------- 输入框（对齐登录页：深色填充） ---------------- */

.as-page .ant-input,
.as-page .ant-input-affix-wrapper {
  min-height: 42px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  box-shadow: none;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.as-page .ant-input-password .ant-input {
  min-height: 38px;
  background: transparent;
}

.as-page .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.as-page .ant-input:hover,
.as-page .ant-input-affix-wrapper:hover {
  border-color: rgba(255, 255, 255, 0.16);
  background: rgba(255, 255, 255, 0.07);
}

.as-page .ant-input:focus,
.as-page .ant-input-affix-wrapper:focus,
.as-page .ant-input-affix-wrapper:focus-within,
.as-page .ant-input-affix-wrapper-focused {
  border-color: rgba(255, 45, 194, 0.5);
  background: rgba(255, 255, 255, 0.07);
  box-shadow: 0 0 0 3px rgba(255, 45, 194, 0.12);
}

.as-page .ant-input[disabled],
.as-page .ant-input-affix-wrapper-disabled {
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.4);
}

/* 收款表单输入框限宽，避免在宽卡片里拉太长 */
.as-payee-input.ant-input {
  max-width: 360px;
}

/* ---------------- 主按钮（全站品牌渐变胶囊） ---------------- */

.as-save {
  min-width: 128px;
  height: 40px;
  padding: 0 26px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(255, 45, 194, 0.18);
  transition: filter 0.15s ease;
}

.as-save:hover:not(:disabled) {
  filter: brightness(1.06);
}

.as-save:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  box-shadow: none;
}

.as-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 24px;
}

/* ---------------- 头像 ---------------- */

.as-avatar-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

/* 渐变描边环：外层 104，内层头像 98 */
.as-avatar {
  position: relative;
  width: 104px;
  height: 104px;
  padding: 3px;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(148deg, rgba(255, 107, 94, 0.9), rgba(255, 45, 194, 0.9));
  cursor: pointer;
  transition: box-shadow 0.18s ease;
}

.as-avatar:hover:not(:disabled) {
  box-shadow: 0 8px 24px rgba(255, 45, 194, 0.28);
}

.as-avatar:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.as-avatar-img,
.as-avatar-fallback {
  display: grid;
  place-items: center;
  width: 98px;
  height: 98px;
  border-radius: 50%;
  object-fit: cover;
  background: #1c1c23;
  color: #fff;
  font-size: 34px;
  font-weight: 600;
}

/* 无头像时的字母兜底：品牌渐变，保证任何状态都可见 */
.as-avatar-fallback {
  background: radial-gradient(circle at 30% 25%, #ff8f7e, #ff2dc2 75%);
}

/* 悬停遮罩：更换头像 */
.as-avatar-mask {
  position: absolute;
  inset: 3px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  color: rgba(255, 255, 255, 0.95);
  font-size: 12px;
  opacity: 0;
  transition: opacity 0.18s ease;
}

.as-avatar:hover:not(:disabled) .as-avatar-mask {
  opacity: 1;
}

.as-file {
  display: none;
}

.as-avatar-tip {
  margin: 0;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}

/* ---------------- 登录密码 ---------------- */

.as-seg {
  display: inline-flex;
  gap: 4px;
  padding: 4px;
  margin-bottom: 20px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
}

.as-seg-item {
  padding: 7px 18px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  cursor: pointer;
  transition: color 0.18s ease, background 0.18s ease;
}

.as-seg-item:hover {
  color: rgba(255, 255, 255, 0.85);
}

.as-seg-item.is-on {
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-weight: 600;
}

.as-pwd-fields {
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 420px;
}

.as-code-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.as-code-row .as-mini {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 42px;
  padding: 0 18px;
  border: 1px solid rgba(255, 45, 194, 0.4);
  border-radius: 10px;
  background: rgba(255, 45, 194, 0.08);
  color: #ff8fc0;
  font-size: 13px;
  white-space: nowrap;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, color 0.15s ease;
}

.as-code-row .as-mini:hover:not(:disabled) {
  border-color: rgba(255, 45, 194, 0.65);
  background: rgba(255, 45, 194, 0.14);
  color: #ffb3d6;
}

.as-code-row .as-mini:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

/* ---------------- 收款账户 ---------------- */

.as-payee-tip {
  margin: 24px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
  line-height: 1.7;
}

/* ---------------- 响应式 ---------------- */

@media (max-width: 720px) {
  .as-body {
    padding: 20px 20px 44px 28px;
  }

  .as-card {
    padding: 18px 18px 22px;
  }

  .as-id-grid {
    grid-template-columns: 1fr;
  }

  .as-security {
    grid-template-columns: 1fr;
  }

  .as-actions {
    flex-wrap: wrap;
  }
}

/* ---------------- 实名认证状态 ---------------- */

.as-verify {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 4px 0;
}

.as-verify-icon {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.55);
  font-size: 22px;
}

.as-verify-main {
  flex: 1;
  min-width: 0;
}

.as-verify-main strong {
  display: block;
  margin-bottom: 4px;
  color: #fff;
  font-size: 14px;
}

.as-verify-main p {
  margin: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  line-height: 1.7;
}
.rn-page {
  color: #fff;
}

.rn-page .page-back-bar {
  padding-right: 32px;
  padding-left: 40px;
}

.rn-page .page-back-bar-title h1 {
  font-size: 16px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.92);
}

.rn-desc {
  margin: 0;
  padding: 18px 40px 12px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.rn-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 64px;
  align-items: start;
  max-width: 1100px;
  padding: 12px 40px 64px;
}

.rn-main {
  display: flex;
  flex-direction: column;
  gap: 44px;
  min-width: 0;
}

.rn-section {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.rn-section-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.rn-step {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  flex-shrink: 0;
  margin-top: 1px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.07);
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  font-weight: 650;
  line-height: 1;
}

.rn-section-head h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.92);
}

.rn-section-head p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.36);
  font-size: 13px;
  line-height: 1.55;
}

.rn-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.rn-uploads {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.rn-upload {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  aspect-ratio: 1.58 / 1;
  min-height: 168px;
  padding: 24px 16px;
  overflow: hidden;
  border: 1px dashed rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
  color: rgba(255, 255, 255, 0.5);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.rn-upload:hover {
  border-color: rgba(255, 45, 194, 0.4);
  background: rgba(255, 45, 194, 0.04);
}

.rn-upload-icon {
  position: relative;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 2px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.52);
  font-size: 22px;
}

.rn-upload-plus {
  position: absolute;
  right: -4px;
  bottom: -4px;
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #141414;
  color: #ff6b9a;
  font-size: 9px;
}

.rn-upload strong {
  color: rgba(255, 255, 255, 0.88);
  font-size: 14px;
  font-weight: 650;
}

.rn-upload > span:last-child {
  color: rgba(255, 255, 255, 0.3);
  font-size: 12px;
}

.rn-upload.has-file {
  padding: 0;
  border-style: solid;
  border-color: rgba(255, 255, 255, 0.1);
}

.rn-upload img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.rn-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px 20px;
}

.rn-field {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.rn-field > span {
  color: rgba(255, 255, 255, 0.48);
  font-size: 13px;
  line-height: 1.3;
}

.rn-field > span em {
  margin-left: 3px;
  color: #ff6b8a;
  font-style: normal;
}

.rn-hint {
  margin: 0;
  color: rgba(255, 255, 255, 0.28);
  font-size: 12px;
  font-style: normal;
  line-height: 1.45;
}

.rn-field .ant-input {
  height: 44px;
  padding: 0 14px !important;
  border: 1px solid rgba(255, 255, 255, 0.09) !important;
  border-radius: 10px !important;
  background: rgba(0, 0, 0, 0.24) !important;
  color: #fff !important;
  font-size: 14px !important;
}

.rn-field .ant-input:hover,
.rn-field .ant-input:focus {
  border-color: rgba(255, 45, 194, 0.4) !important;
}

.rn-field .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.26);
}

.rn-footer {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  margin-top: 4px;
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.rn-agree {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  line-height: 1.55;
  cursor: pointer;
}

.rn-check {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  margin-top: 2px;
  display: grid;
  place-items: center;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
  background: transparent;
  color: transparent;
  font-size: 14px;
  cursor: pointer;
  padding: 0;
}

.rn-check.is-on {
  border-color: #3ee58b;
  background: rgba(62, 229, 139, 0.12);
  color: #3ee58b;
}

.rn-link {
  padding: 0;
  border: 0;
  background: none;
  color: #8eb7ff;
  cursor: pointer;
}

.rn-link:hover {
  color: #b6d0ff;
}

.rn-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 168px;
  height: 44px;
  padding: 0 28px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(255, 45, 194, 0.2);
}

.rn-submit:hover {
  filter: brightness(1.05);
}

.rn-side {
  position: sticky;
  top: 24px;
  padding: 8px 0 0 28px;
  border-left: 1px solid rgba(255, 255, 255, 0.06);
}

.rn-side-block {
  padding: 0 0 28px;
}

.rn-side-block:last-child {
  padding-bottom: 0;
}

.rn-side-block + .rn-side-block {
  padding-top: 28px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.rn-side-block h3 {
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.62);
}

.rn-side-block ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.rn-side-block li {
  position: relative;
  margin-bottom: 12px;
  padding-left: 14px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
  line-height: 1.6;
}

.rn-side-block li:last-child {
  margin-bottom: 0;
}

.rn-side-block li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(142, 183, 255, 0.65);
}

.rn-side-block p {
  margin: 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 13px;
  line-height: 1.7;
}

@media (max-width: 1100px) {
  .rn-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
    max-width: none;
  }

  .rn-side {
    position: static;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 32px;
    padding: 0 0 8px;
    border-left: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  }

  .rn-side-block {
    padding: 0 0 24px;
  }

  .rn-side-block + .rn-side-block {
    padding-top: 0;
    border-top: 0;
  }
}

@media (max-width: 900px) {
  .rn-side {
    grid-template-columns: 1fr;
    gap: 0;
  }

  .rn-side-block + .rn-side-block {
    padding-top: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
  }
}

@media (max-width: 720px) {
  .rn-desc,
  .rn-layout {
    padding-right: 24px;
    padding-left: 28px;
  }

  .rn-uploads,
  .rn-fields {
    grid-template-columns: 1fr;
  }
}
.buy-confirm-modal.ant-modal .ant-modal-content,
.buy-confirm-modal.ant-modal .ant-modal-container {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  background: #1c1d26;
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.55);
  overflow: hidden;
}

.buy-confirm-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.buy-panel {
  padding: 18px 22px 20px;
  color: #fff;
}

.buy-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.buy-head h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 16px;
  font-weight: 650;
}

.buy-head .anticon {
  color: rgba(255, 255, 255, 0.72);
  font-size: 16px;
}

.buy-head button {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.45);
  cursor: pointer;
}

.buy-head button:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.buy-sub {
  margin: 8px 0 16px;
  color: rgba(255, 255, 255, 0.42);
  font-size: 13px;
}

.buy-amount {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 28px 16px 24px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.28);
}

.buy-amount span,
.buy-balance span {
  color: rgba(255, 255, 255, 0.42);
  font-size: 13px;
}

.buy-amount strong {
  color: #f5c451;
  font-size: 32px;
  font-weight: 750;
  line-height: 1;
  letter-spacing: 0.02em;
}

.buy-amount em {
  margin-left: 2px;
  font-size: 16px;
  font-style: normal;
  font-weight: 650;
}

.buy-balance {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 14px;
}

.buy-balance b {
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 650;
}

.buy-foot {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 22px;
}

.buy-foot button {
  height: 40px;
  border-radius: 10px;
  font-size: 14px;
  cursor: pointer;
}

.buy-cancel {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.82);
}

.buy-cancel:hover {
  background: rgba(255, 255, 255, 0.08);
}

.buy-ok {
  border: 0;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-weight: 650;
}

.buy-ok:hover {
  filter: brightness(1.06);
}
/* 完整评估报告弹窗（集市详情页） */

.er-modal .ant-modal-content {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  background: #141419;
}

.er-modal .ant-modal-header {
  background: transparent;
}

.er-modal .ant-modal-close {
  color: rgba(255, 255, 255, 0.45);
}

.er-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.er-title strong {
  color: #fff;
  font-size: 16px;
  font-weight: 650;
}

.er-title span {
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  font-weight: 400;
}

.er-body {
  max-height: 64vh;
  padding-right: 6px;
  overflow-y: auto;
  color: #fff;
}

.er-empty {
  padding: 32px 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
  text-align: center;
}

/* 综合评分 */
.er-score {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
}

.er-score em {
  color: #ffd36a;
  font-size: 30px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}

.er-score small {
  margin-left: 2px;
  color: rgba(255, 211, 106, 0.6);
  font-size: 13px;
  font-weight: 500;
}

.er-score > div > span {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.er-score-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.er-score-meta b {
  color: #3ee58b;
  font-size: 13px;
}

/* 分区 */
.er-section {
  margin-top: 22px;
}

.er-section h4 {
  position: relative;
  margin: 0 0 12px;
  padding-left: 11px;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 650;
}

.er-section h4::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 12px;
  border-radius: 2px;
  background: linear-gradient(148deg, #ff6b5e, #ff2dc2);
  transform: translateY(-50%);
}

/* 维度 */
.er-dims {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.er-dims li {
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.er-dim-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-size: 13px;
}

.er-dim-head strong {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
}

.er-dim-head em {
  color: #ffd36a;
  font-style: normal;
  font-weight: 650;
}

.er-dims i {
  display: block;
  height: 4px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.er-dims i b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff6b5e, #ff2dc2);
}

.er-dims p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  line-height: 1.7;
}

/* 画像 / 结论 */
.er-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 24px;
}

.er-field span {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.er-field p {
  margin: 4px 0 0;
  color: rgba(255, 255, 255, 0.8);
  font-size: 13px;
  line-height: 1.7;
  white-space: pre-wrap;
  word-break: break-word;
}

/* 报告正文 */
.er-report {
  max-height: 320px;
  margin: 0;
  padding: 14px;
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.3);
  color: rgba(255, 255, 255, 0.72);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.8;
  white-space: pre-wrap;
  word-break: break-word;
}

@media (max-width: 640px) {
  .er-fields {
    grid-template-columns: 1fr;
  }
}
.studio-main:has(.studio-body.is-studio) {
  background: #0d0d0d;
}



.studio-body.is-studio {
  padding: 0;
  overflow: hidden;
  background: #0d0d0d;
}



.ss-page {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 420px;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100%;
  min-height: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  background: #0d0d0d;
  color: #fff;
}



.ss-page.is-assistant-collapsed {
  grid-template-columns: minmax(0, 1fr) 56px;
}



.ss-script-head {
  grid-column: 1;
  grid-row: 1;
}



.ss-script-title {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex: 1;
  width: 100%;
}



.ss-script-title .ant-input {
  height: 32px;
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
}



.ss-script-title button {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
}



.ss-script-title button img {
  width: 14px;
  height: 14px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.55;
}



.ss-script-title button:hover {
  background: rgba(255, 255, 255, 0.06);
}



.ss-script-title button:hover img {
  opacity: 1;
}



.ss-script-meta {
  display: flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}



.ss-script-meta img {
  width: 14px;
  height: 14px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.55;
}



.ss-workspace-body {
  grid-column: 1;
  grid-row: 2;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
}



.ss-main {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: #111111;
}



.ss-main-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  gap: 12px;
  padding: 24px 28px 12px;
}



.ss-main-head-left {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}



.ss-main-head h1 {
  margin: 0;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.4;
}



.ss-full-badge {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  white-space: nowrap;
}



.ss-main-edit {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 30px;
  padding: 0 10px;
  border: 1px solid #373842;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  cursor: pointer;
}



.ss-main-edit img {
  width: 12px;
  height: 12px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.7;
}



.ss-main-edit:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}



/* 删除类操作：平时与「编辑/导出」一致，hover 才提示危险 */
.ss-main-edit.ss-main-delete:hover {
  border-color: rgba(255, 92, 92, 0.55);
  color: #ff7b7b;
}



.ss-main-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}



.ss-main-cancel {
  height: 34px;
  padding: 0 10px;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  cursor: pointer;
}



.ss-main-cancel:hover {
  color: rgba(255, 255, 255, 0.9);
}



.ss-main-add {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  cursor: pointer;
}



.ss-main-add .anticon {
  font-size: 11px;
  opacity: 0.8;
}



.ss-main-add:hover {
  border-color: rgba(255, 255, 255, 0.4);
  color: #fff;
}



.ss-main-save {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 16px;
  border: 0;
  border-radius: 8px;
  background: #fff;
  color: #111;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
}



.ss-main-save .anticon {
  font-size: 12px;
}



.ss-main-save:hover {
  background: #f2f2f2;
}



.ss-main-body {
  flex: 1;
  min-height: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.16) transparent;
}



.ss-main-body::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}



.ss-main-body::-webkit-scrollbar-track {
  margin: 8px 0;
  background: transparent;
}



.ss-main-body::-webkit-scrollbar-thumb {
  border: 1px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
  background-color: rgba(255, 255, 255, 0.14);
}



.ss-main-body::-webkit-scrollbar-thumb:hover {
  background-color: rgba(255, 255, 255, 0.28);
}



.ss-main-body::-webkit-scrollbar-corner {
  background: transparent;
}



.ss-main-body.is-form {
  display: block;
  place-items: unset;
  padding: 20px 28px 28px;
}



.ss-main-body.has-actions {
  padding-bottom: 20px;
}



.ss-setting-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 760px;
}



.ss-setting-row.is-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  max-width: 420px;
}



.ss-setting-field {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
}



.ss-setting-field.is-textarea {
  align-items: start;
}



.ss-setting-field.is-textarea > span {
  padding-top: 10px;
}



.ss-setting-field > span {
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  text-align: right;
}



.ss-setting-field .ant-input,
.ss-setting-field .ant-input-affix-wrapper,
.ss-setting-field textarea.ant-input {
  width: 100%;
  min-height: 38px;
  padding: 8px 14px !important;
  border: 1px solid #2a2b33 !important;
  border-radius: 8px !important;
  background: #1a1b22 !important;
  color: rgba(255, 255, 255, 0.9) !important;
  box-shadow: none !important;
  font-size: 13px;
  line-height: 1.5;
  transition: border-color 0.15s ease, background 0.15s ease;
}



.ss-setting-field .ant-input:hover,
.ss-setting-field textarea.ant-input:hover {
  border-color: #3a3b45 !important;
  background: #1d1e26 !important;
}



.ss-setting-field .ant-input:focus,
.ss-setting-field textarea.ant-input:focus {
  border-color: #3a3b45 !important;
  background: #1d1e26 !important;
  box-shadow: none !important;
}



.ss-setting-field textarea.ant-input {
  min-height: 140px;
  line-height: 1.7;
  resize: none;
}



.ss-character-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  width: 100%;
}



.ss-outline-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}



.ss-outline-item h3 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}



.ss-outline-body {
  padding: 14px 16px;
  border: 1px solid #2f3038;
  border-radius: 10px;
  background: #16171d;
}



.ss-outline-body p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
  line-height: 1.75;
}



.ss-outline-edit-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
}



.ss-outline-edit-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}



.ss-outline-edit-title.ant-input,
.ss-outline-edit-summary.ant-input,
.ss-outline-edit-summary.ant-input-textarea textarea,
textarea.ss-outline-edit-summary {
  width: 100%;
  color: rgba(255, 255, 255, 0.92) !important;
  background: #1a1b22 !important;
  border: 1px solid #3a3b45 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}



.ss-outline-edit-title.ant-input:hover,
.ss-outline-edit-summary.ant-input:hover,
textarea.ss-outline-edit-summary:hover {
  border-color: rgba(255, 255, 255, 0.28) !important;
  background: #1d1e26 !important;
}



.ss-outline-edit-title.ant-input:focus,
.ss-outline-edit-summary.ant-input:focus,
textarea.ss-outline-edit-summary:focus {
  border-color: rgba(255, 255, 255, 0.35) !important;
  background: #1d1e26 !important;
  box-shadow: none !important;
}



.ss-outline-edit-title.ant-input::placeholder,
textarea.ss-outline-edit-summary::placeholder {
  color: rgba(255, 255, 255, 0.28);
}



.ss-outline-edit-title.ant-input {
  height: 40px;
  padding: 0 14px !important;
  font-size: 14px;
  font-weight: 650;
}



textarea.ss-outline-edit-summary {
  min-height: 88px !important;
  padding: 12px 14px 16px !important;
  font-size: 13px;
  line-height: 1.75;
  resize: none;
}



.ss-full-view {
  display: flex;
  flex-direction: column;
  gap: 18px;
  width: 100%;
}



.ss-full-episode {
  padding: 18px 20px 22px;
  border: 1px solid #2f3038;
  border-radius: 12px;
  background: #16171d;
  scroll-margin-top: 12px;
}



.ss-full-episode.is-active {
  border-color: rgba(255, 255, 255, 0.22);
}



.ss-full-episode h3 {
  margin: 0 0 14px;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
}



.ss-full-script {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  color: rgba(255, 255, 255, 0.86);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.85;
}



/* 上传 / 粘贴剧本：整篇文档展示与编辑 */
.ss-full-doc {
  display: flex;
  flex-direction: column;
  width: 100%;
}



.ss-full-doc textarea.ss-full-edit-body {
  min-height: 62vh !important;
}



.ss-full-edit-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}



.ss-full-edit-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 18px;
  border: 1px solid #2f3038;
  border-radius: 12px;
  background: #16171d;
  scroll-margin-top: 12px;
}



.ss-full-edit-item.is-active {
  border-color: rgba(255, 255, 255, 0.22);
}



.ss-full-edit-head {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
}



.ss-full-edit-ep {
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
}



.ss-full-edit-title.ant-input,
.ss-full-edit-body.ant-input,
textarea.ss-full-edit-body {
  width: 100%;
  color: rgba(255, 255, 255, 0.9) !important;
  background: #1a1b22 !important;
  border: 1px solid #2a2b33 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}



.ss-full-edit-title.ant-input:hover,
textarea.ss-full-edit-body:hover,
.ss-full-edit-title.ant-input:focus,
textarea.ss-full-edit-body:focus {
  border-color: #3a3b45 !important;
  background: #1d1e26 !important;
  box-shadow: none !important;
}



.ss-full-edit-title.ant-input {
  height: 38px;
  padding: 0 12px !important;
  font-size: 14px;
  font-weight: 650;
}



textarea.ss-full-edit-body {
  min-height: 160px !important;
  padding: 12px 14px 18px !important;
  font-size: 13px;
  line-height: 1.75;
  resize: none;
}



.ss-main-edit .anticon {
  font-size: 12px;
}



.ss-character-edit-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
}



.ss-character-edit-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  gap: 18px 24px;
  padding: 18px 44px 18px 18px;
  border: 1px solid #2f3038;
  border-radius: 12px;
  background: #16171d;
}



.ss-character-edit-remove {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.35);
  cursor: pointer;
}



.ss-character-edit-remove:hover {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.85);
}



.ss-character-edit-left {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}



.ss-character-edit-name.ant-input,
.ss-character-edit-field .ant-input,
.ss-character-edit-right textarea.ant-input {
  width: 100%;
  color: rgba(255, 255, 255, 0.92) !important;
  background: #1a1b22 !important;
  border: 1px solid #2a2b33 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}



.ss-character-edit-name.ant-input:hover,
.ss-character-edit-field .ant-input:hover,
.ss-character-edit-right textarea.ant-input:hover,
.ss-character-edit-age:hover {
  border-color: #3a3b45 !important;
  background: #1d1e26 !important;
}



.ss-character-edit-name.ant-input:focus,
.ss-character-edit-field .ant-input:focus,
.ss-character-edit-right textarea.ant-input:focus,
.ss-character-edit-age:focus-within {
  border-color: #3a3b45 !important;
  background: #1d1e26 !important;
  box-shadow: none !important;
}



.ss-character-edit-name.ant-input::placeholder,
.ss-character-edit-field .ant-input::placeholder,
.ss-character-edit-right textarea.ant-input::placeholder,
.ss-character-edit-age .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}



.ss-character-edit-name.ant-input {
  height: 38px;
  padding: 0 12px !important;
  font-size: 14px;
  font-weight: 650;
}



.ss-character-edit-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 108px;
  gap: 10px;
}



.ss-character-edit-role.ant-select {
  width: 100%;
}



.ss-character-edit-role .ant-select-selector {
  height: 38px !important;
  padding-inline: 12px !important;
  color: rgba(255, 255, 255, 0.92) !important;
  background: #1a1b22 !important;
  border: 1px solid #2a2b33 !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}



.ss-character-edit-role.ant-select:hover .ant-select-selector,
.ss-character-edit-role.ant-select-focused .ant-select-selector {
  border-color: #3a3b45 !important;
  background: #1d1e26 !important;
}



.ss-character-edit-role .ant-select-selection-item,
.ss-character-edit-role .ant-select-selection-placeholder {
  line-height: 36px !important;
}



.ss-character-edit-role .ant-select-selection-placeholder {
  color: rgba(255, 255, 255, 0.28) !important;
}



.ss-character-edit-role .ant-select-arrow,
.ss-character-edit-role .ant-select-clear {
  color: rgba(255, 255, 255, 0.4);
}



.ss-character-edit-age {
  display: flex;
  align-items: center;
  height: 38px;
  padding: 0 10px 0 8px;
  border: 1px solid #2a2b33;
  border-radius: 8px;
  background: #1a1b22;
  cursor: text;
}



.ss-character-edit-age .ant-input {
  flex: 1;
  min-width: 0;
  height: 100% !important;
  padding: 0 4px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.92) !important;
  text-align: center;
  font-size: 13px;
}



.ss-character-edit-age em {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.45);
  font-style: normal;
  font-size: 13px;
}



.ss-character-edit-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}



.ss-character-edit-field > span,
.ss-character-edit-label {
  color: rgba(255, 255, 255, 0.42);
  font-size: 12px;
  line-height: 1;
}



.ss-character-edit-field .ant-input {
  height: 38px;
  padding: 0 12px !important;
}



.ss-character-edit-right {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}



.ss-character-edit-right textarea.ant-input {
  flex: 1;
  min-height: 132px !important;
  padding: 12px 14px 20px !important;
  line-height: 1.75;
  resize: none;
}



.ss-character-edit-role-dropdown {
  padding: 6px !important;
  background: #1a1b22 !important;
  border: 1px solid #2a2b33 !important;
}



.ss-character-edit-role-dropdown .ant-select-item {
  color: rgba(255, 255, 255, 0.85);
  border-radius: 6px;
}



.ss-character-edit-role-dropdown .ant-select-item-option-active,
.ss-character-edit-role-dropdown .ant-select-item-option-selected {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #fff;
}



.ss-character-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px;
  border: 1px solid #373842;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}



.ss-character-meta {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}



.ss-character-avatar {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(148deg, #6f63ff 0%, #9b5cff 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}



.ss-character-name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}



.ss-character-name strong {
  font-size: 15px;
  font-weight: 700;
}



.ss-character-name em {
  height: 22px;
  padding: 0 8px;
  border-radius: 6px;
  background: rgba(111, 99, 255, 0.16);
  color: #b7aeff;
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  line-height: 22px;
}



.ss-character-name span {
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}



.ss-character-cols {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}



.ss-character-col h4 {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  font-weight: 500;
}



.ss-character-col p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
  line-height: 1.7;
}



.ss-empty {
  text-align: center;
}



@media (max-width: 1199px) {
  .ss-character-list {
    grid-template-columns: 1fr;
  }

  .ss-character-cols {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    gap: 16px 24px;
  }

  .ss-character-edit-card {
    grid-template-columns: 1fr;
  }
}



@media (max-width: 900px) {
  .ss-character-cols {
    grid-template-columns: 1fr;
  }

  .ss-character-edit-row {
    grid-template-columns: 1fr 96px;
  }
}



.ss-empty img {
  width: 120px;
  height: 120px;
  object-fit: contain;
  opacity: 0.95;
}



.ss-empty p {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 14px;
}



/* 未生成的集：单独生成这一集 */
.ss-empty-generate {
  margin-top: 16px;
  height: 34px;
  padding: 0 22px;
  border: none;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  cursor: pointer;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
}



.ss-empty-generate:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}



.ss-actions {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  width: fit-content;
  max-width: calc(100% - 40px);
  min-height: 56px;
  margin: 4px auto 20px;
  padding: 12px 20px;
  border: 0;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}



.ss-actions > span {
  color: #fff;
  font-size: 12px;
}



.ss-actions button {
  height: 40px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #111111;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}



.ss-actions button:hover:not(:disabled) {
  background: #fff;
}



.ss-actions button:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}



.ss-assistant {
  grid-column: 2;
  grid-row: 1 / -1;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 20px;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  background: #0d0d0d;
}



.ss-page.is-assistant-collapsed .ss-assistant {
  align-items: center;
  padding: 16px 8px;
}



.ss-assistant-expand {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid #373842;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
}



.ss-assistant-expand img {
  width: 16px;
  height: 16px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.75;
}



.ss-assistant-expand:hover {
  background: rgba(255, 255, 255, 0.1);
}



.ss-assistant-expand:hover img {
  opacity: 1;
}



.ss-assistant-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 52px;
  margin-bottom: 14px;
  padding: 0 14px;
  border: 1px solid #373842;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.04) 100%);
}



.ss-assistant-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}



.ss-assistant-title img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}



.ss-assistant-title h3 {
  margin: 0;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}



.ss-assistant-tools {
  display: flex;
  gap: 4px;
}



.ss-assistant-tools button {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 8px;
  background: transparent;
  cursor: pointer;
}



.ss-assistant-tools button img {
  width: 16px;
  height: 16px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.7;
}



.ss-assistant-tools button:hover,
.ss-assistant-tools button.is-active {
  background: rgba(255, 255, 255, 0.08);
}



.ss-assistant-tools button:hover img,
.ss-assistant-tools button.is-active img {
  opacity: 1;
}



.ss-plan.is-picked h5 {
  color: #8ec8ff;
}



.ss-plan {
  margin-bottom: 0;
  padding: 0;
  border: 0;
  background: transparent;
}



.ss-plan-divider {
  height: 1px;
  margin: 16px 0;
  background: rgba(255, 255, 255, 0.08);
}



.ss-plan h5 {
  margin: 0 0 10px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}



.ss-plan h5 em {
  color: rgba(255, 255, 255, 0.85);
  font-style: normal;
  font-weight: 600;
}



.ss-plan dl {
  margin: 0;
}



.ss-plan dl > div {
  margin-bottom: 10px;
}



.ss-plan dt {
  margin-bottom: 4px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}



.ss-plan dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 12px;
  line-height: 1.65;
}



.ss-model {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 160px;
  height: 28px;
  padding: 0 10px;
  border: 1px solid #373842;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}



.ss-model:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}



.ss-model .anticon {
  flex-shrink: 0;
  font-size: 10px;
  opacity: 0.7;
}



.ss-model img {
  width: 10px;
  height: 10px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.75;
}



@media (max-width: 1439px) {
  .ss-page {
    grid-template-columns: minmax(0, 1fr) 380px;
  }

  .ss-page.is-assistant-collapsed {
    grid-template-columns: minmax(0, 1fr) 56px;
  }

  .ss-workspace-body {
    grid-template-columns: 260px minmax(0, 1fr);
  }
}



@media (max-width: 1199px) {
  .ss-page {
    grid-template-columns: minmax(0, 1fr);
  }

  .ss-page.is-assistant-collapsed {
    grid-template-columns: minmax(0, 1fr);
  }

  .ss-workspace-body {
    grid-template-columns: 240px minmax(0, 1fr);
  }

  .ss-assistant {
    display: none;
  }

  .ss-actions {
    max-width: calc(100% - 24px);
    margin-bottom: 12px;
    padding: 10px 14px;
  }

  .ss-actions > span {
    width: 100%;
    text-align: center;
  }
}



.ss-upload-doc {
  width: 100%;
  max-width: 760px;
}



.ss-upload-doc-body {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.9;
  white-space: pre-wrap;
  word-break: break-word;
}



/* 剧本设定只读展示 */
.ss-setting-readonly {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}



.ss-setting-readonly .ss-setting-row {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 16px;
  align-items: start;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}



.ss-setting-readonly dt {
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  line-height: 1.7;
}



.ss-setting-readonly dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  line-height: 1.8;
  white-space: pre-wrap;
}



.ss-setting-skel-row {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 16px;
  align-items: center;
}



.ss-setting-skel-row .ss-skel.is-title {
  width: 72px;
  height: 14px;
}


/* 人物/大纲解析不出卡片时回落展示的 Markdown 原文 */
.ss-raw-markdown {
  margin: 0;
  padding: 4px 2px;
  color: rgba(255, 255, 255, 0.85);
  font-size: 14px;
  line-height: 1.9;
  font-family: inherit;
  white-space: pre-wrap;
  word-break: break-word;
}



/* 目录：下游基于旧版上游内容、待更新 */
.ss-stale-tag {
  margin-left: 4px;
  padding: 1px 7px;
  border-radius: 10px;
  font-size: 11px;
  line-height: 16px;
  color: #f7b500;
  background: rgba(250, 173, 20, 0.12);
  border: 1px solid rgba(250, 173, 20, 0.38);
}



/* 内容区顶部：待更新黄色提示条 */
.ss-stale-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0 0;
  padding: 9px 14px;
  border-radius: 10px;
  color: #f7b500;
  background: rgba(250, 173, 20, 0.12);
  border: 1px solid rgba(250, 173, 20, 0.38);
  font-size: 13px;
}


.ss-stale-banner button {
  flex: none;
  height: 28px;
  padding: 0 14px;
  border: none;
  border-radius: 999px;
  color: #fff;
  font-size: 12px;
  cursor: pointer;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
}


.ss-stale-banner button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}



/* 正文：按场次展示，每场带格式化键值对 */
.ss-full-scene {
  padding: 8px 0 4px;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}


.ss-scene-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}


.ss-scene-meta .ss-scene-no {
  font-weight: 600;
  color: #ff8fc7;
}


.ss-scene-meta span:not(.ss-scene-no) {
  padding: 1px 8px;
  border-radius: 8px;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.78);
  background: rgba(255, 255, 255, 0.07);
}


.ss-scene-char {
  margin: 0 0 6px;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.6);
}



/* 全文生成中：仅在本层显示的逐集进度提示（不做全局 loading） */
.ss-gen-hint {
  margin: 0 0 12px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 13px;
  color: #ff8fc7;
  background: rgba(255, 45, 194, 0.1);
  border: 1px solid rgba(255, 45, 194, 0.25);
}
.ss-dir {
  min-height: 0;
  padding: 14px 10px;
  overflow: auto;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  background: #0d0d0d;
  scrollbar-width: none;
}



.ss-dir::-webkit-scrollbar {
  display: none;
}



.ss-dir h3 {
  margin: 0 8px 8px;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
  font-weight: 500;
}



.ss-dir nav {
  display: flex;
  flex-direction: column;
  gap: 4px;
}



.ss-dir button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  height: 42px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14px;
  text-align: left;
  cursor: pointer;
}



.ss-dir-left {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}



.ss-dir-left img {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.55;
}



.ss-dir button:hover,
.ss-dir button.active {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}



.ss-dir button:hover .ss-dir-left img,
.ss-dir button.active .ss-dir-left img {
  opacity: 1;
}



.ss-dir button.active {
  position: relative;
  font-weight: 600;
}

/* 选中项不再画粉色竖线：选中态靠底色区分，避免粉色溢出到目录左侧 */
.ss-dir button.active::before {
  display: none;
}



.ss-dir .is-done {
  color: #3ee58b;
  font-size: 14px;
}



.ss-dir-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.75);
  font-size: 11px;
  font-style: normal;
  line-height: 1;
}



.ss-dir-group {
  display: flex;
  flex-direction: column;
  gap: 2px;
}



.ss-dir-caret {
  width: 12px;
  height: 12px;
  object-fit: contain;
  opacity: 0.45;
  transition: transform 0.18s ease;
  transform: rotate(-90deg);
}



.ss-dir-caret.is-open {
  transform: rotate(0deg);
}



.ss-dir-child {
  height: auto !important;
  min-height: 44px;
  padding: 8px 12px 8px 40px !important;
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
}



.ss-dir-child-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}



.ss-dir-child-text strong {
  color: inherit;
  font-size: 13px;
  font-weight: 500;
}



.ss-dir-child-text em {
  color: rgba(255, 255, 255, 0.28);
  font-style: normal;
  font-size: 11px;
}



.ss-dir-child.active {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.12) !important;
}



.ss-dir-child.active strong {
  font-weight: 600;
}

/* 子项本身有缩进，再画左侧竖线会悬在空白处，只保留父级入口的竖线 */
.ss-dir-child.active::before {
  display: none;
}

/* 分集项左侧不显示任何装饰线：层级关系靠缩进表达，
   粉色竖线只属于当前选中的入口项，子项一律不画 */
.ss-dir-child::before,
.ss-dir-child::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  background: none !important;
}

.ss-dir-child {
  border-left: 0 !important;
  background-image: none !important;
  box-shadow: none !important;
}



/* 目录子区域的说明文字（如「还没有评估报告」） */
.ss-dir-hint {
  margin: 0;
  padding: 2px 12px 2px 40px;
  color: rgba(255, 255, 255, 0.26);
  font-size: 12px;
  line-height: 1.6;
}



/* 子区域底部的动作项（重新评估 / 开始评估） */
.ss-dir-child-action {
  height: 32px !important;
  min-height: 32px;
  color: rgba(255, 255, 255, 0.4) !important;
  font-size: 12.5px !important;
}



.ss-dir-child-action .ss-dir-left {
  gap: 6px;
}



.ss-dir-child-action .ss-dir-plus {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.32);
}



.ss-dir-child-action:hover {
  background: transparent !important;
  color: #ff8ada !important;
}



.ss-dir-child-action:hover .ss-dir-plus {
  color: #ff8ada;
}



.ss-dir-child-action:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}



/* 素材子项：与其它子项同一缩进，字号更小，一眼能看出挂在「上传素材」下面 */
.ss-dir-file.ss-dir-child {
  height: 34px !important;
  min-height: 34px;
  padding: 0 12px 0 42px !important;
  color: rgba(255, 255, 255, 0.48) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
}



.ss-dir-file .ss-dir-left {
  gap: 8px;
}



.ss-dir-file .ss-dir-left img {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
  object-fit: contain;
  mix-blend-mode: normal;
  opacity: 0.5;
}



.ss-dir-file.ss-dir-child:hover .ss-dir-left img,
.ss-dir-file.ss-dir-child.active .ss-dir-left img {
  opacity: 0.9;
}



.ss-dir-file .ss-dir-child-text strong {
  font-size: 13px;
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}



/* 选中 / 悬停与其它子项一致：白字加粗（底色直接用 .ss-dir button 的灰底） */
.ss-dir-file.ss-dir-child:hover,
.ss-dir-file.ss-dir-child.active {
  color: #fff !important;
}



.ss-dir-file.ss-dir-child.active .ss-dir-child-text strong {
  font-weight: 600;
}



/* 目录：集 → 场次 下钻 */
.ss-dir-subgroup {
  display: flex;
  flex-direction: column;
}


.ss-dir-scene {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 12px 7px 30px;
  border: none;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12.5px;
  text-align: left;
  cursor: pointer;
}


.ss-dir-scene:hover {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.92);
}


.ss-dir-scene em {
  color: rgba(255, 255, 255, 0.35);
  font-style: normal;
  font-size: 11.5px;
}


.ss-eval-report {
  display: flex;
  flex-direction: column;
  gap: 22px;
  width: 100%;
  padding-bottom: 12px;
}



/* 剧本评估：记录总览 */
.ss-eval-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}



.ss-eval-list-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}



.ss-eval-list-head h3 {
  margin: 0 0 6px;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}



.ss-eval-list-head p {
  margin: 0;
  color: rgba(255, 255, 255, 0.42);
  font-size: 12.5px;
}



.ss-eval-start {
  flex: none;
  height: 34px;
  padding: 0 20px;
  border: none;
  border-radius: 999px;
  color: #fff;
  font-size: 13px;
  cursor: pointer;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
}



.ss-eval-start:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}



.ss-eval-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}



.ss-eval-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}



.ss-eval-card:hover {
  border-color: rgba(255, 45, 194, 0.45);
  background: rgba(255, 45, 194, 0.08);
}



.ss-eval-card-top {
  display: flex;
  align-items: center;
  gap: 8px;
}



.ss-eval-card-top strong {
  flex: 1;
  min-width: 0;
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}



.ss-eval-card-grade {
  padding: 1px 8px;
  border-radius: 999px;
  background: rgba(255, 45, 194, 0.18);
  color: #ff8ada;
  font-size: 11.5px;
  font-weight: 600;
}



.ss-eval-card-score {
  color: rgba(255, 255, 255, 0.75);
  font-size: 12.5px;
}



.ss-eval-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12.5px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}



.ss-eval-card em {
  color: rgba(255, 255, 255, 0.32);
  font-size: 11.5px;
  font-style: normal;
}



.ss-eval-section h3 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}



.ss-eval-portrait {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
}



.ss-eval-portrait > div {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}



.ss-eval-portrait dt {
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}



.ss-eval-portrait dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
  font-size: 13px;
  line-height: 1.7;
}



.ss-eval-hooks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}



.ss-eval-hooks span {
  height: 26px;
  padding: 0 10px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.72);
  font-size: 12px;
  line-height: 26px;
}



.ss-eval-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid #2f3038;
  border-radius: 10px;
  overflow: hidden;
  background: #16171d;
}



.ss-eval-table th,
.ss-eval-table td {
  padding: 12px 14px;
  border-bottom: 1px solid #2f3038;
  font-size: 13px;
  text-align: left;
  vertical-align: top;
}



.ss-eval-table tr:last-child th,
.ss-eval-table tr:last-child td {
  border-bottom: 0;
}



.ss-eval-table th {
  width: 120px;
  color: rgba(255, 255, 255, 0.42);
  font-weight: 500;
  background: rgba(255, 255, 255, 0.02);
}



.ss-eval-table td {
  color: rgba(255, 255, 255, 0.86);
}



.ss-eval-table td strong {
  color: #fff;
  font-size: 16px;
}



.ss-eval-grade {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(62, 229, 139, 0.14);
  color: #3ee58b;
  font-style: normal;
  font-size: 12px;
  font-weight: 650;
}



.ss-eval-blocks {
  display: flex;
  flex-direction: column;
  gap: 14px;
}



.ss-eval-blocks h4 {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  font-weight: 500;
}



.ss-eval-blocks p {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.75;
  white-space: pre-wrap;
}



/* 维度得分：名称 + 分数 + 评语 */
.ss-eval-dims {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}



.ss-eval-dims li {
  display: grid;
  grid-template-columns: 96px 48px 1fr;
  align-items: baseline;
  gap: 10px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.7;
}



.ss-eval-dims span {
  color: rgba(255, 255, 255, 0.5);
}



.ss-eval-dims b {
  color: #fff;
  font-size: 15px;
}



.ss-eval-dims em {
  color: rgba(255, 255, 255, 0.6);
  font-style: normal;
}



.ss-eval-summary {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.8;
  white-space: pre-wrap;
}



.ss-composer-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}



.ss-composer-tag {
  height: 28px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.92);
  color: #111;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}



.ss-composer-tag.is-done {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.14);
  color: rgba(255, 255, 255, 0.75);
}



.ss-chat-action {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 40px;
  margin-top: 12px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
}



.ss-chat-action:hover:not(:disabled) {
  opacity: 0.94;
}



.ss-chat-action:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}



.ss-chat-doc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  margin-top: 10px;
  padding: 12px 14px;
  border: 1px solid #373842;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}



.ss-chat-doc:hover {
  border-color: rgba(255, 255, 255, 0.22);
}



.ss-chat-doc .anticon {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}




.ss-chat {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}



.ss-chat-panel {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  padding: 14px 16px;
  border: 1px solid #373842;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.04) 100%);
}



.ss-chat-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding-right: 4px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.16) transparent;
}



.ss-chat-scroll::-webkit-scrollbar {
  width: 5px;
}



.ss-chat-scroll::-webkit-scrollbar-track {
  background: transparent;
}



.ss-chat-scroll::-webkit-scrollbar-thumb {
  border: 1px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
  background-color: rgba(255, 255, 255, 0.14);
}



.ss-chat-scroll::-webkit-scrollbar-thumb:hover {
  background-color: rgba(255, 255, 255, 0.28);
}



.ss-chat-section {
  margin: 0 0 14px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}



.ss-stream {
  margin: 0;
  white-space: pre-wrap;
  word-break: break-word;
  color: rgba(255, 255, 255, 0.82);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.7;
}



.ss-stream-caret {
  display: inline-block;
  width: 2px;
  height: 1em;
  margin-left: 2px;
  vertical-align: -2px;
  background: #ff2dc2;
  animation: ss-caret 0.9s steps(1) infinite;
}



@keyframes ss-caret {
  50% {
    opacity: 0;
  }
}



.ss-chat-prompt {
  margin: 0 0 14px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  line-height: 1.55;
}



.ss-chat-tip-line {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}



.ss-msg {
  display: inline-flex;
  align-items: center;
  max-width: 92%;
  min-height: 36px;
  padding: 8px 16px;
  border: 0;
  border-radius: 10px;
  font-size: 13px;
  line-height: 1.4;
}



.ss-msg-user {
  display: flex;
  width: fit-content;
  max-width: 92%;
  margin: 12px 0 0 auto;
  background: #ff2dc2;
  color: #fff;
  font-weight: 600;
  cursor: pointer;
}



.ss-msg-system {
  display: flex;
  width: fit-content;
  margin: 10px 0 0;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.65);
}



/* 普通回复外面套一层，让 token 消耗能贴在气泡下方 */
.ss-msg-slot {
  width: 100%;
}



.ss-msg-usage {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 11px;
  line-height: 1.5;
}



.ss-msg-usage span:last-child {
  color: rgba(255, 255, 255, 0.62);
}



/*
 * 上传类剧本的内容（设定 / 人物小传 / 分集大纲 / 改写文本）都由助手写在对话里，
 * 所以气泡要按原样换行、宽度铺满，并配一个「复制」按钮方便作者粘进剧本
 */
.ss-msg-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  margin: 10px 0 0;
}



.ss-msg-wrap .ss-msg-system {
  display: block;
  width: auto;
  max-width: 100%;
  margin: 0;
  line-height: 1.8;
  text-align: left;
  white-space: pre-wrap;
  word-break: break-word;
}



.ss-msg-copy {
  align-self: flex-end;
  margin-top: 4px;
  height: 22px;
  padding: 0 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.4);
  font-size: 11px;
  line-height: 20px;
  cursor: pointer;
  opacity: 0.55;
  transition: opacity 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}



.ss-msg-wrap:hover .ss-msg-copy {
  opacity: 1;
}



.ss-msg-copy:hover {
  border-color: rgba(255, 61, 154, 0.5);
  color: #ff8fc0;
}

/* 气泡下方统计小字：耗时 / 尝试 / 失败 */
.ss-msg-meta {
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  line-height: 1.6;
}

/* 极简 Markdown 渲染（聊天气泡 / 方案卡片 / 放大弹窗共用） */
.ss-md {
  display: block;
  width: 100%;
  white-space: normal;
}

.ss-md p {
  margin: 0 0 8px;
}

.ss-md p:last-child {
  margin-bottom: 0;
}

.ss-md hr {
  height: 0;
  margin: 10px 0;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.ss-md .ss-md-heading {
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
}

/* 气泡是 flex 容器，让 Markdown 块撑满 */
.ss-msg-system .ss-md {
  flex: 1;
}



.ss-composer {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  margin-top: 14px;
  min-height: 140px;
  padding: 14px;
  border: 0;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.04) 100%);
}



.ss-composer .ant-input {
  flex: 1;
  min-height: 72px !important;
  color: #fff !important;
  font-size: 13px;
  padding: 0 !important;
  resize: none;
}



.ss-composer .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}



.ss-composer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 12px;
}



.ss-composer-left {
  display: flex;
  align-items: center;
  gap: 8px;
}



.ss-composer-add {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}



.ss-composer-add img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.85;
}



.ss-composer-add:hover img {
  opacity: 1;
}



.ss-send {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
}



.ss-send img {
  width: 22px;
  height: 22px;
  object-fit: contain;
  mix-blend-mode: screen;
  opacity: 0.85;
}



.ss-send:hover img {
  opacity: 1;
}



/* 助手正在输出：三个跳动点 */
.ss-typing-dots {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}



.ss-typing-dots i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.55);
  animation: ss-dot 1.1s infinite ease-in-out;
}



.ss-typing-dots i:nth-child(2) {
  animation-delay: 0.16s;
}



.ss-typing-dots i:nth-child(3) {
  animation-delay: 0.32s;
}



@keyframes ss-dot {
  0%,
  60%,
  100% {
    opacity: 0.25;
    transform: translateY(0);
  }
  30% {
    opacity: 1;
    transform: translateY(-2px);
  }
}



/* 发送按钮切换为停止：和发送一样大的圆形，只换个粉色底 + 一个小方块，简约 */
.ss-send.is-stopping {
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  box-shadow: 0 3px 10px rgba(255, 45, 194, 0.35);
}



.ss-send .ss-stop {
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  background: #fff;
}



.ss-skeleton {
  width: 100%;
}



.ss-skel {
  display: block;
  border-radius: 8px;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0.04) 0%,
    rgba(255, 255, 255, 0.1) 45%,
    rgba(255, 255, 255, 0.04) 100%
  );
  background-size: 220% 100%;
  animation: ss-skel-shine 1.25s ease-in-out infinite;
}



.ss-skel-line {
  height: 12px;
  width: 100%;
}



.ss-skel-line.is-title {
  height: 16px;
  width: 56%;
}



.ss-skel-line.is-short {
  width: 38%;
}



.ss-skel-line.is-mid {
  width: 72%;
}



.ss-skel-avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  flex-shrink: 0;
}

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



.ss-skeleton-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 18px;
  border: 1px solid #2f3038;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}



.ss-skeleton-card-meta {
  display: flex;
  align-items: center;
  gap: 12px;
}



.ss-skeleton-card-lines {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}



.ss-skeleton-outline {
  display: flex;
  flex-direction: column;
  gap: 18px;
}



.ss-skeleton-outline-item {
  display: flex;
  flex-direction: column;
  gap: 10px;
}



.ss-skeleton-outline-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid #2f3038;
  border-radius: 10px;
  background: #16171d;
}



.ss-skeleton-full {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 18px 20px;
  border: 1px solid #2f3038;
  border-radius: 12px;
  background: #16171d;
}



.ss-skeleton-full-body {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 6px;
}



.ss-skeleton-eval {
  display: flex;
  flex-direction: column;
  gap: 14px;
}



.ss-skeleton-eval-block,
.ss-skeleton-eval-table {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px 16px;
  border: 1px solid #2f3038;
  border-radius: 10px;
  background: #16171d;
}



.ss-skeleton-eval-row {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}



@keyframes ss-skel-shine {
  0% {
    background-position: 100% 0;
  }
  100% {
    background-position: -100% 0;
  }
}



@media (max-width: 1199px) {
  .ss-skeleton-character {
    grid-template-columns: 1fr;
  }
}



/* 设定生成骨架 */
.ss-skeleton-setting {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-top: 4px;
}
/* 设定方案 3 选一面板 */
.ss-variant-panel {
  margin-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}



.ss-variant-heading {
  color: rgba(255, 255, 255, 0.6);
  font-size: 13px;
  padding: 4px 2px;
}



.ss-variant-card {
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 12px;
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.03);
  cursor: pointer;
  transition: border-color 0.18s ease, background 0.18s ease, transform 0.18s ease;
}



.ss-variant-card:hover {
  border-color: rgba(255, 61, 154, 0.5);
  background: rgba(255, 61, 154, 0.06);
  transform: translateY(-1px);
  box-shadow: 0 10px 28px rgba(255, 61, 154, 0.14);
}



.ss-variant-card.is-active {
  border-color: #ff3d9a;
  background: rgba(255, 61, 154, 0.1);
}



.ss-variant-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}



.ss-variant-index {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(255, 61, 154, 0.18);
  color: #ff7ab8;
  font-size: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}



.ss-variant-card-head strong {
  color: #fff;
  font-size: 15px;
}



/* 放大镜：卡片内容被截断，点它看方案全文 */
.ss-variant-zoom {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.6);
  font-size: 13px;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}



.ss-variant-zoom:hover {
  border-color: rgba(255, 61, 154, 0.55);
  background: rgba(255, 61, 154, 0.14);
  color: #ff7ab8;
}



/* ---------------- 方案全文弹窗 ---------------- */

.ss-variant-modal .ant-modal-content {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  background: #16161c;
}



.ss-variant-modal .ant-modal-header {
  background: transparent;
}



.ss-variant-modal .ant-modal-close {
  color: rgba(255, 255, 255, 0.45);
}



.ss-variant-modal-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 6px 12px;
}



.ss-variant-modal-title strong {
  color: #fff;
  font-size: 16px;
  font-weight: 650;
}



.ss-variant-modal-title em {
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  font-style: normal;
}



.ss-variant-modal-body {
  max-height: 58vh;
  margin: 0;
  padding: 16px 18px;
  overflow-y: auto;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.35);
  color: rgba(255, 255, 255, 0.78);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.85;
  word-break: break-word;
}

/* 弹窗里的方案字段：粗体字段名提亮，段落之间留出呼吸感 */
.ss-variant-modal-body .ss-md p {
  margin: 0 0 12px;
}

.ss-variant-modal-body .ss-md p:last-child {
  margin-bottom: 0;
}

.ss-variant-modal-body .ss-md strong {
  color: #fff;
  font-weight: 600;
}



.ss-variant-modal-foot {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
}



.ss-variant-tagline {
  margin: 0 0 6px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 13px;
}



.ss-variant-content {
  margin: 0 0 12px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12.5px;
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}



.ss-variant-use {
  border: 1px solid rgba(255, 61, 154, 0.6);
  background: transparent;
  color: #ff7ab8;
  border-radius: 999px;
  padding: 5px 16px;
  font-size: 13px;
  cursor: pointer;
  transition: background 0.18s ease;
}



.ss-variant-use:hover:not(:disabled) {
  background: rgba(255, 61, 154, 0.15);
}



.ss-variant-use:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}



.ss-variant-refresh {
  align-self: flex-start;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 13px;
  cursor: pointer;
  padding: 4px 2px;
}



.ss-variant-refresh:hover:not(:disabled) {
  color: #fff;
}



/* 方案生成中的骨架卡 */
.ss-variant-card.is-skeleton {
  cursor: default;
  pointer-events: none;
}



.ss-variant-skel-title {
  width: 50%;
  height: 16px;
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
  margin-bottom: 12px;
}



.ss-variant-skel-line {
  height: 11px;
  border-radius: 6px;
  background: linear-gradient(90deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04));
  margin-bottom: 8px;
}



.ss-variant-skel-line.short {
  width: 70%;
}

.cd-main-scroll {
  flex: 1;
  min-height: 0;
  padding: 8px 36px 40px;
  overflow: auto;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.16) transparent;
}

.cd-kicker {
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
  letter-spacing: 0.04em;
}

.cd-doc h3 {
  margin: 0 0 14px;
  font-size: 22px;
  font-weight: 650;
  line-height: 1.35;
}

.cd-lead {
  max-width: 680px;
  margin: 0 0 22px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 15px;
  line-height: 1.85;
}

.cd-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 28px;
}

.cd-facts div {
  padding: 14px 14px 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.cd-facts span {
  display: block;
  margin-bottom: 6px;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}

.cd-facts b {
  color: rgba(255, 255, 255, 0.9);
  font-size: 14px;
  font-weight: 600;
}

.cd-doc h4 {
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.88);
}

.cd-beats {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
}

.cd-beats li {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.cd-beats em {
  color: #ff8ad4;
  font-size: 13px;
  font-style: normal;
  font-weight: 650;
}

.cd-beats p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  line-height: 1.7;
}

.cd-cast {
  display: grid;
  gap: 12px;
}

.cd-person {
  padding: 18px 18px 16px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.cd-person header {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cd-person header strong {
  font-size: 16px;
}

.cd-person header span {
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(255, 45, 194, 0.14);
  color: #ff8ad4;
  font-size: 12px;
  line-height: 22px;
}

.cd-person > em {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
  font-style: normal;
}

.cd-traits {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 12px 0;
}

.cd-traits i {
  height: 24px;
  padding: 0 8px;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
  font-style: normal;
  line-height: 24px;
}

.cd-person p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 14px;
  line-height: 1.75;
}

.cd-slug {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}

.cd-slug span {
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  line-height: 26px;
}

.cd-script {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 760px;
}

/* 普通段落：读起来像正文，不加装饰 */
.cd-para {
  margin: 0;
  color: rgba(255, 255, 255, 0.62);
  font-size: 14.5px;
  line-height: 1.9;
}

/* markdown 标题按级别递减，代替原来满屏的「###」 */
.cd-h {
  margin: 22px 0 2px;
  color: #fff;
  font-weight: 650;
  line-height: 1.5;
}

.cd-h:first-child {
  margin-top: 0;
}

.cd-h1 {
  font-size: 19px;
}

.cd-h2 {
  font-size: 17px;
}

.cd-h3 {
  font-size: 15.5px;
}

.cd-h4,
.cd-h5,
.cd-h6 {
  font-size: 14.5px;
  color: rgba(255, 255, 255, 0.86);
}

/* 剧集标题：右侧跟一条渐隐细线，章节切分一眼可见 */
.cd-h-ep {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 26px;
  font-size: 15px;
}

.cd-h-ep::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(255, 45, 194, 0.35), transparent);
}

/* 单集标题：正文区顶部的大标题 */
.cd-ep-title {
  margin: 0 0 18px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: #fff;
  font-size: 18px;
  font-weight: 650;
  line-height: 1.4;
}

/* 目录里的剧集行：第一集可读，其余带锁 */
.cd-ep-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 32px !important;
  padding: 4px 12px 4px 40px !important;
}

.cd-ep-lock {
  flex: none;
  color: rgba(255, 255, 255, 0.26);
  font-size: 12px;
}

.cd-ep-item:hover .cd-ep-lock {
  color: rgba(255, 255, 255, 0.45);
}

/* 试读结束后的付费提示 */
.cd-paywall {
  display: flex;
  align-items: center;
  gap: 14px;
  max-width: 760px;
  margin-top: 24px;
  padding: 18px 20px;
  border: 1px solid rgba(255, 45, 194, 0.24);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255, 45, 194, 0.1), rgba(255, 255, 255, 0.02));
}

.cd-paywall > .anticon {
  color: #ff8ad4;
  font-size: 20px;
}

.cd-paywall div {
  flex: 1;
  min-width: 0;
}

.cd-paywall strong {
  display: block;
  color: #fff;
  font-size: 13.5px;
  font-weight: 600;
}

.cd-paywall p {
  margin: 4px 0 0;
  color: rgba(255, 255, 255, 0.42);
  font-size: 12px;
}

.cd-paywall button {
  flex: none;
  height: 36px;
  padding: 0 18px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.cd-paywall button:hover {
  filter: brightness(1.06);
}

.cd-note {
  margin: 4px 0;
  padding: 10px 12px;
  border-left: 2px solid rgba(255, 45, 194, 0.7);
  border-radius: 0 8px 8px 0;
  background: rgba(255, 45, 194, 0.08);
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
}

.cd-dialogue {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 15px;
  line-height: 1.75;
}

.cd-dialogue b {
  margin-right: 8px;
  color: #ffd36a;
  font-weight: 650;
}

.cd-dialogue i {
  margin-right: 6px;
  color: rgba(255, 255, 255, 0.4);
  font-style: normal;
  font-size: 13px;
}

.cd-lock {
  max-width: 420px;
  padding: 28px 22px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: 14px;
  text-align: center;
}

.cd-lock .anticon {
  color: rgba(255, 255, 255, 0.35);
  font-size: 22px;
}

.cd-lock strong {
  display: block;
  margin: 10px 0 6px;
  font-size: 15px;
}

.cd-lock p {
  margin: 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
  line-height: 1.6;
}

.cd-caret {
  display: block;
  width: 6px;
  height: 6px;
  flex-shrink: 0;
  margin-right: 2px;
  border-right: 1.5px solid rgba(255, 255, 255, 0.45);
  border-bottom: 1.5px solid rgba(255, 255, 255, 0.45);
  transform: rotate(-45deg);
  transition: transform 0.16s ease;
}

.cd-caret.is-open {
  transform: rotate(45deg);
}

.ss-dir button:hover .cd-caret,
.ss-dir button.active .cd-caret {
  border-color: rgba(255, 255, 255, 0.8);
}

.ss-dir-child .anticon-lock {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.28);
  font-size: 12px;
}

.ss-page:has(.cd-rail) {
  grid-template-columns: minmax(0, 1fr) 340px;
}

.cd-rail {
  grid-column: 2;
  grid-row: 1 / -1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  padding: 16px;
  overflow: auto;
  border-left: 1px solid rgba(255, 255, 255, 0.08);
  background: #0d0d0d;
  scrollbar-width: thin;
}

.cd-poster {
  position: relative;
  overflow: hidden;
  border-radius: 16px;
  aspect-ratio: 16 / 10;
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.32);
}

.cd-poster img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cd-poster-shade {
  position: absolute;
  inset: auto 0 0;
  padding: 36px 14px 12px;
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.82));
}

.cd-poster-shade h3 {
  margin: 8px 0 0;
  font-size: 16px;
  font-weight: 650;
  line-height: 1.3;
}

.cd-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.cd-tags span {
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.35);
  color: rgba(255, 255, 255, 0.86);
  font-size: 11px;
  line-height: 20px;
  backdrop-filter: blur(6px);
}

.cd-tags span:first-child {
  background: rgba(255, 45, 194, 0.85);
  color: #fff;
}

.cd-owner {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 2px;
}

.cd-owner i {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 45, 194, 0.16);
  color: #ff8ad4;
  font-size: 14px;
  font-style: normal;
  font-weight: 650;
}

.cd-owner strong {
  display: block;
  font-size: 13px;
  font-weight: 650;
}

.cd-owner span {
  display: block;
  margin-top: 2px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.cd-score {
  padding: 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.cd-score-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 14px;
}

.cd-score-head strong {
  font-size: 13px;
  font-weight: 650;
}

.cd-score-head em {
  color: #ffd36a;
  font-size: 22px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}

.cd-score-head small {
  margin-left: 2px;
  color: rgba(255, 211, 106, 0.55);
  font-size: 12px;
  font-weight: 500;
}

.cd-bar {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.cd-bar i {
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.cd-bar b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff6b5e, #ff2dc2);
}

.cd-bar em {
  color: rgba(255, 255, 255, 0.72);
  font-style: normal;
  text-align: right;
}

.cd-risk {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.cd-risk b {
  margin-left: 6px;
  color: #3ee58b;
}

.cd-score > button {
  margin-top: 12px;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  cursor: pointer;
}

.cd-score > button:hover {
  color: #fff;
}

/* 综合评分：数字 + 小字标签 */
.cd-score-total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.cd-score-total > span {
  color: rgba(255, 255, 255, 0.38);
  font-size: 11px;
}

/* 维度得分 */
.cd-dims {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.cd-dims li {
  display: grid;
  grid-template-columns: 68px minmax(0, 1fr) 26px;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
}

.cd-dims em {
  color: rgba(255, 255, 255, 0.85);
  font-style: normal;
  font-weight: 600;
  text-align: right;
}

.cd-dim-bar {
  display: block;
  height: 4px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
}

.cd-dim-bar b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff6b5e, #ff2dc2);
}

/* 查看完整评估报告 */
.cd-score > .cd-report-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 26px;
  padding: 0;
  border: 0;
  background: none;
  color: #ff8fc0;
  font-size: 12px;
  cursor: pointer;
}

.cd-score > .cd-report-link:hover {
  color: #ffb3d6;
}

.cd-score > .cd-report-link .anticon {
  font-size: 11px;
}

.cd-deal {
  padding: 4px 14px 2px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.cd-price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.cd-price span {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.cd-price strong {
  color: #ffd36a;
  font-size: 26px;
  font-weight: 700;
  line-height: 1;
}

.cd-price strong em {
  margin-left: 4px;
  color: rgba(255, 211, 106, 0.7);
  font-size: 12px;
  font-style: normal;
  font-weight: 550;
}

.cd-price strong.is-talk {
  color: #7de8b0;
  font-size: 18px;
}

.cd-deal dl {
  margin: 0;
}

.cd-deal dl div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 12px;
}

.cd-deal dl div:last-child {
  border-bottom: 0;
}

.cd-deal dt {
  color: rgba(255, 255, 255, 0.36);
}

.cd-deal dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.82);
}

.cd-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 88px;
  gap: 8px;
  margin-top: auto;
  padding-top: 4px;
}

.cd-buy,
.cd-fav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 42px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
}

.cd-buy {
  border: 0;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  box-shadow: 0 10px 22px rgba(255, 45, 194, 0.22);
}

.cd-buy:hover {
  filter: brightness(1.06);
}

.cd-fav {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.72);
  font-weight: 550;
}

.cd-fav:hover,
.cd-fav.is-on {
  border-color: rgba(255, 45, 194, 0.35);
  color: #ff8ad4;
}

@media (max-width: 1100px) {
  .cd-facts {
    grid-template-columns: 1fr 1fr;
  }
}

/* 空数据占位：没有封面 / 没有大纲 / 没有评估摘要 */
.cd-empty {
  padding: 24px 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.cd-poster-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}

.cd-summary {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  line-height: 1.7;
}
/* 本人查看自己的剧本时的提示 */
.cd-owner-tip {
  margin: 0 0 10px;
  padding: 8px 10px;
  border-radius: 8px;
  background: rgba(168, 130, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  line-height: 1.6;
}.od-page {
  min-height: 100%;
  color: #fff;
  background: #0d0d0d;
}

.od-page .page-back-bar {
  padding-right: 32px;
  padding-left: 40px;
}

.od-page .page-back-bar-title h1 {
  font-size: 16px;
  font-weight: 650;
}

.od-body {
  max-width: 1080px;
  padding: 22px 40px 48px;
}

.od-head h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 650;
}

.od-head p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 13px;
}

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

.od-main,
.od-side section {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.od-main {
  padding: 8px 18px 6px;
}

.od-pay {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.od-pay .anticon {
  color: #3ee58b;
  font-size: 16px;
}

.od-pay strong {
  font-size: 15px;
}

.od-parties {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 16px 0;
}

.od-parties dl,
.od-meta {
  margin: 0;
}

.od-parties dl {
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.18);
}

.od-parties dl div,
.od-meta div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 0;
}

.od-meta div {
  padding: 13px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.od-parties dt,
.od-meta dt {
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.od-parties dd,
.od-meta dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
}

.od-meta dd.is-gold {
  color: #f5c451;
  font-weight: 650;
}

.od-side section {
  position: relative;
}

.od-remain {
  position: absolute;
  top: 12px;
  right: 12px;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(214, 150, 40, 0.2);
  color: #f3c56b;
  font-size: 12px;
  line-height: 22px;
}

.od-side section {
  padding: 16px;
  background: rgba(18, 36, 72, 0.45);
  border-color: rgba(90, 140, 220, 0.28);
}

.od-side h3 {
  margin: 0;
  color: rgba(180, 210, 255, 0.72);
  font-size: 13px;
  font-weight: 500;
}

.od-side strong {
  display: block;
  margin: 10px 0 8px;
  font-size: 22px;
  font-weight: 700;
}

.od-side p {
  margin: 0;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  line-height: 1.7;
}

.od-side-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: 14px;
}

.od-side button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.86);
  font-size: 13px;
  cursor: pointer;
}

.od-side small {
  display: block;
  margin-top: 10px;
  color: rgba(255, 255, 255, 0.32);
  font-size: 12px;
}

@media (max-width: 960px) {
  .od-layout,
  .od-parties {
    grid-template-columns: 1fr;
  }
}
.pub-page {
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  color: #fff;
  background: #0d0d0d;
}

.pub-page .page-back-bar {
  flex-shrink: 0;
  padding-right: 32px;
  padding-left: 40px;
}

.pub-page .page-back-bar-title h1 {
  font-size: 16px;
  font-weight: 650;
}

.pub-scroll {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 18px 32px 40px 40px;
}

.pub-lead {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

/* 没有评估报告时的阻断提示 */
.pub-block-tip {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 107, 122, 0.32);
  border-radius: 10px;
  background: rgba(255, 77, 79, 0.1);
  color: #ff9a9f;
  font-size: 13px;
  line-height: 1.7;
}

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

.pub-main,
.pub-side {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.pub-card,
.pub-side-card {
  padding: 18px 18px 16px;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.pub-card h2,
.pub-side-card h3,
.pub-card-head h2 {
  margin: 0;
  font-size: 15px;
  font-weight: 650;
}

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

.pub-card-head span,
.pub-card-head em {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  font-style: normal;
}

.pub-card-head span {
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  line-height: 22px;
}

.pub-alert {
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 90, 110, 0.35);
  border-radius: 10px;
  background: rgba(120, 28, 40, 0.35);
  color: rgba(255, 196, 200, 0.92);
  font-size: 12px;
  line-height: 1.7;
}

.pub-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 16px;
}

.pub-grid label,
.pub-wide {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.pub-wide {
  margin-top: 14px;
}

.pub-grid span,
.pub-wide span {
  color: rgba(255, 255, 255, 0.48);
  font-size: 12px;
}

.pub-page .ant-input,
.pub-page .ant-select {
  width: 100%;
}

.pub-page .ant-input,
.pub-page .ant-select-selector {
  height: 40px !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  border-radius: 8px !important;
  background: rgba(0, 0, 0, 0.28) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.pub-page .ant-input {
  padding: 0 12px !important;
}

.pub-page .ant-input[disabled] {
  color: rgba(255, 255, 255, 0.72) !important;
}

.pub-page .ant-select-selection-item {
  line-height: 38px !important;
  color: #fff;
}

/* 题材标签多选：高度随标签行数增长，标签样式压成小胶囊 */
.pub-page .pub-tags-select .ant-select-selector {
  height: auto !important;
  min-height: 40px;
  padding: 4px 8px !important;
}

.pub-page .pub-tags-select .ant-select-selection-overflow {
  gap: 4px;
}

.pub-page .pub-tags-select .ant-select-selection-overflow-item {
  max-width: 100%;
}

.pub-page .pub-tags-select .ant-select-selection-item {
  height: 24px;
  margin: 0 !important;
  padding: 0 8px !important;
  border: 0 !important;
  border-radius: 6px;
  background: rgba(255, 45, 194, 0.16) !important;
  color: #ff8ada !important;
  font-size: 12px;
  line-height: 24px !important;
}

.pub-page .pub-tags-select .ant-select-selection-placeholder {
  color: rgba(255, 255, 255, 0.3);
  font-size: 13px;
  line-height: 30px;
}

.pub-suffix {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pub-suffix .ant-input {
  flex: 1;
}

.pub-suffix em {
  flex-shrink: 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
  font-style: normal;
}

.pub-price-tip {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin: 12px 0 0;
  color: #ff8a8a;
  font-size: 12px;
}

.pub-price-tip.is-ok {
  color: #3ee58b;
}

.pub-price-tip button {
  padding: 0;
  border: 0;
  background: none;
  color: #8eb7ff;
  font-size: 12px;
  cursor: pointer;
}

.pub-declare-label {
  margin: 14px 0 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.pub-declare {
  padding: 14px;
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.22);
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  line-height: 1.7;
}

.pub-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 14px;
  padding: 0;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  line-height: 1.5;
  text-align: left;
  cursor: pointer;
}

.pub-check i {
  width: 16px;
  height: 16px;
  flex-shrink: 0;
  margin-top: 1px;
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  border-radius: 50%;
}

.pub-check.is-on i {
  border-color: #3ee58b;
  background: #3ee58b;
  box-shadow: inset 0 0 0 3px #0d0d0d;
}

.pub-check button {
  padding: 0;
  border: 0;
  background: none;
  color: #8eb7ff;
  cursor: pointer;
}

.pub-cover {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  aspect-ratio: 16 / 10;
}

.pub-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.pub-cover input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.pub-cover button {
  position: absolute;
  top: 10px;
  right: 10px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 28px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: rgba(12, 12, 16, 0.72);
  color: #fff;
  font-size: 12px;
  cursor: pointer;
}

.pub-side-card h3 {
  margin-bottom: 10px;
}

.pub-side-card p {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  margin: 0 0 8px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
}


.pub-side-card .anticon {
  margin-top: 3px;
  color: #3ee58b;
}



.pub-submit {
  height: 42px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
}

.pub-submit:hover {
  filter: brightness(1.06);
}

@media (max-width: 1100px) {
  .pub-layout,
  .pub-grid {
    grid-template-columns: 1fr;
  }
}

/* 无封面占位 */
.pub-cover-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  aspect-ratio: 3 / 4;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
}.rv-page {
  min-height: 100%;
  color: #fff;
  background: #0d0d0d;
}

.rv-page .page-back-bar {
  padding-right: 32px;
  padding-left: 40px;
}

.rv-page .page-back-bar-title h1 {
  font-size: 16px;
  font-weight: 650;
}

.rv-body {
  max-width: 1080px;
  padding: 22px 40px 48px;
}

.rv-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}

.rv-head h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 650;
}

/* 标题随审核状态变色 */
.rv-head h2.is-passed {
  color: #3ee58b;
}

.rv-head h2.is-failed {
  color: #ff8a96;
}

.rv-head h2.is-wait {
  color: #ffb45e;
}

.rv-head p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 13px;
}

.rv-eta {
  height: 28px;
  padding: 0 10px;
  border-radius: 8px;
  background: rgba(80, 140, 255, 0.16);
  color: #8eb7ff;
  font-size: 12px;
  line-height: 28px;
}

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

.rv-main,
.rv-side dl,
.rv-tip {
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.rv-main {
  padding: 8px;
}

.rv-script {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 16px 10px;
}

.rv-script strong {
  display: block;
  font-size: 16px;
}

.rv-script span {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.rv-script em {
  color: #6ea8ff;
  font-size: 28px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}

.rv-checks {
  margin: 0;
  padding: 0 8px 8px;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rv-checks li {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px 14px 12px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.22);
}

.rv-check-icon {
  font-size: 16px;
}

.rv-checks .is-passed .rv-check-icon {
  color: #3ee58b;
}

.rv-checks .is-running .rv-check-icon {
  color: #6ea8ff;
}

.rv-checks .is-wait .rv-check-icon {
  color: #ffb45e;
}

.rv-check-copy strong {
  display: block;
  font-size: 14px;
}

.rv-check-copy span {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.rv-check-copy i {
  display: block;
  height: 3px;
  margin-top: 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.rv-check-copy i::after {
  content: '';
  display: block;
  height: 100%;
  width: 100%;
  border-radius: inherit;
}

.rv-checks .is-passed i::after {
  background: #3ee58b;
}

.rv-checks .is-running i::after {
  width: 62%;
  background: #6ea8ff;
}

.rv-checks .is-wait i::after {
  width: 18%;
  background: #ffb45e;
}

/* 驳回也是「走完了流程」，进度条填满但用红色 */
.rv-checks .is-failed i::after {
  width: 100%;
  background: #ff6b7a;
}

.rv-checks li > em {
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  font-size: 12px;
  font-style: normal;
  line-height: 22px;
}

.rv-checks .is-passed > em {
  background: rgba(62, 229, 139, 0.12);
  color: #3ee58b;
}

.rv-checks .is-running > em {
  background: rgba(110, 168, 255, 0.14);
  color: #8eb7ff;
}

.rv-checks .is-wait > em {
  background: rgba(255, 180, 94, 0.14);
  color: #ffb45e;
}

.rv-side dl {
  margin: 0;
  padding: 6px 16px;
}

.rv-side dl div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 13px;
}

.rv-side dl div:last-child {
  border-bottom: 0;
}

.rv-side dt {
  color: rgba(255, 255, 255, 0.4);
}

.rv-side dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.86);
}

.rv-tip {
  margin-top: 12px;
  padding: 14px 16px;
  background: rgba(80, 120, 200, 0.08);
  border-color: rgba(110, 168, 255, 0.16);
}

.rv-tip h3 {
  margin: 0 0 8px;
  font-size: 14px;
}

.rv-tip p {
  margin: 0;
  color: rgba(255, 255, 255, 0.48);
  font-size: 12px;
  line-height: 1.7;
}

.rv-withdraw {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  margin-top: 12px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
  cursor: pointer;
}

.rv-withdraw:hover {
  border-color: rgba(255, 255, 255, 0.2);
  color: #fff;
}

.rv-reject-banner {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  padding: 12px 16px;
  border: 1px solid rgba(214, 150, 40, 0.45);
  border-radius: 10px;
  background: rgba(92, 62, 12, 0.55);
  color: #f3c56b;
  font-size: 13px;
}

.rv-reject-card {
  padding: 6px 8px 10px;
  border: 1px solid rgba(255, 107, 122, 0.28);
  border-radius: 14px;
  background: rgba(48, 18, 28, 0.45);
}

.rv-reject-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 12px 14px 4px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.rv-reject-head .anticon {
  margin-top: 2px;
  color: #ff6b7a;
  font-size: 16px;
}

.rv-reject-head strong {
  display: block;
  font-size: 15px;
}

.rv-reject-head span {
  display: block;
  margin-top: 4px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.rv-checks .is-failed .rv-check-icon {
  color: #ff6b7a;
}

.rv-checks .is-failed > em {
  background: rgba(255, 107, 122, 0.14);
  color: #ff8a96;
}

.rv-deduct {
  background: rgba(12, 48, 40, 0.72);
  border-color: rgba(46, 160, 120, 0.28);
}

.rv-deduct h3 {
  margin: 10px 0 2px;
  font-size: 14px;
  font-weight: 650;
}

.rv-deduct dd.is-gold {
  color: #f5c451;
  font-weight: 650;
}

@media (max-width: 960px) {
  .rv-layout {
    grid-template-columns: 1fr;
  }
}
.edit-copyright-modal.ant-modal .ant-modal-content,
.edit-copyright-modal.ant-modal .ant-modal-container {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  background: #16171f;
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.edit-copyright-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.ec-panel {
  padding: 8px 28px 24px;
  color: #fff;
}

.ec-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 58px;
}

.ec-head h3 {
  margin: 0;
  font-size: 18px;
  font-weight: 650;
}

.ec-x {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  cursor: pointer;
}

.ec-x:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.ec-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.ec-grid label,
.ec-story,
.ec-cover-block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.ec-grid span,
.ec-story > span,
.ec-cover-block > span {
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
}

.ec-panel .ant-input,
.ec-panel textarea.ant-input {
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  border-radius: 8px !important;
  background: rgba(0, 0, 0, 0.35) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.ec-panel .ant-input {
  height: 42px;
  padding: 0 12px !important;
}

.ec-story {
  margin-top: 16px;
}

.ec-panel textarea.ant-input {
  min-height: 88px !important;
  padding: 10px 12px !important;
  resize: none;
}

.ec-panel .ant-input::placeholder,
.ec-panel textarea.ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.ec-panel .ant-input:hover,
.ec-panel .ant-input:focus,
.ec-panel textarea.ant-input:hover,
.ec-panel textarea.ant-input:focus {
  border-color: rgba(255, 45, 194, 0.45) !important;
}

.ec-cover-block {
  margin-top: 18px;
}

.ec-cover {
  position: relative;
  width: 168px;
  height: 210px;
  overflow: hidden;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
}

.ec-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ec-cover em {
  display: grid;
  place-items: center;
  height: 100%;
  color: rgba(255, 255, 255, 0.35);
  font-style: normal;
  font-size: 13px;
}

.ec-cover input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.ec-cover button {
  position: absolute;
  left: 10px;
  bottom: 10px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  height: 28px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: rgba(20, 20, 24, 0.72);
  color: #fff;
  font-size: 12px;
  cursor: pointer;
  backdrop-filter: blur(6px);
}

.ec-cover button:hover {
  background: rgba(20, 20, 24, 0.88);
}

.ec-panel footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 28px;
}

.ec-save {
  min-width: 148px;
  height: 40px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(255, 45, 194, 0.22);
}

.ec-save:hover:not(:disabled) {
  filter: brightness(1.06);
}

.ec-save:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
/* 题材标签：外框/胶囊/下拉底色都由 Select 的语义化 styles 内联给出，
   这里只补选项高亮色，避免出现第二层边框 */
.ec-tag-popup .ant-select-item {
  color: rgba(255, 255, 255, 0.72);
}

.ec-tag-popup .ant-select-item-option-active {
  background: rgba(255, 255, 255, 0.08) !important;
}

.ec-tag-popup .ant-select-item-option-selected {
  background: rgba(255, 61, 154, 0.18) !important;
  color: #fff;
}.publish-select-modal.ant-modal .ant-modal-content {
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  background: linear-gradient(180deg, #1d1e28 0%, #15161d 100%);
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.55);
  overflow: hidden;
}

.publish-select-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.psl-panel {
  position: relative;
  color: #fff;
}

.psl-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 40px 0;
}

.psl-head h3 {
  margin: 0 0 6px;
  color: rgba(255, 255, 255, 0.96);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.01em;
}

.psl-head p {
  margin: 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.psl-close {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  cursor: pointer;
}

.psl-close:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.psl-body {
  padding: 18px 40px 10px;
}

.psl-search {
  display: flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  margin-bottom: 16px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.28);
  transition: border-color 0.15s ease, background 0.15s ease;
}

.psl-search:focus-within {
  border-color: rgba(255, 45, 194, 0.35);
  background: rgba(0, 0, 0, 0.36);
}

.psl-search .anticon {
  color: rgba(255, 255, 255, 0.32);
}

.psl-search .ant-input {
  color: #fff !important;
  font-size: 13px;
  padding: 0 !important;
}

.psl-search .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.psl-gallery {
  position: relative;
}

.psl-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: repeat(2, auto);
  gap: 14px;
  width: 100%;
}

.psl-empty {
  grid-column: 1 / -1;
  padding: 72px 20px;
  text-align: center;
  color: rgba(255, 255, 255, 0.35);
  font-size: 13px;
}

.psl-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.07);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  text-align: left;
  cursor: pointer;
  transition:
    border-color 0.18s ease,
    background 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.psl-card:hover {
  border-color: rgba(255, 255, 255, 0.16);
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
}

.psl-card.is-active {
  border-color: rgba(255, 45, 194, 0.55);
  background: rgba(255, 45, 194, 0.06);
  box-shadow:
    0 0 0 1px rgba(255, 45, 194, 0.18),
    0 12px 28px rgba(255, 45, 194, 0.12);
}

.psl-cover {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  background:
    radial-gradient(ellipse at 70% 20%, rgba(140, 100, 255, 0.22), transparent 55%),
    #101018;
}

.psl-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s ease;
}

.psl-card:hover .psl-cover img {
  transform: scale(1.04);
}

.psl-grade {
  position: absolute;
  top: 0;
  left: 10px;
  min-width: 32px;
  padding: 7px 8px 9px;
  border-radius: 0 0 8px 8px;
  color: #2a1400;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  letter-spacing: 0.02em;
  background: linear-gradient(180deg, #ffd27a 0%, #ff9a1f 55%, #f07800 100%);
  box-shadow: 0 6px 14px rgba(255, 140, 20, 0.28);
}

/* 未评估：卡片不可选，封面压暗 + 角标提示 */
.psl-card.is-disabled {
  cursor: not-allowed;
}

.psl-card.is-disabled:hover {
  transform: none;
  box-shadow: none;
}

.psl-card.is-disabled .psl-cover img {
  filter: grayscale(1);
  opacity: 0.45;
}

.psl-card.is-disabled:hover .psl-cover img {
  transform: none;
}

.psl-card.is-disabled .psl-meta strong,
.psl-card.is-disabled .psl-meta span {
  color: rgba(255, 255, 255, 0.4);
}

.psl-noeval {
  position: absolute;
  right: 8px;
  top: 8px;
  height: 20px;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.55);
  color: rgba(255, 255, 255, 0.75);
  font-size: 11px;
  font-weight: 600;
}

.psl-picked {
  position: absolute;
  right: 8px;
  bottom: 8px;
  height: 22px;
  padding: 0 8px;
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: rgba(255, 45, 194, 0.9);
  color: #fff;
  font-size: 11px;
  font-weight: 650;
  backdrop-filter: blur(6px);
}

.psl-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-width: 0;
  padding: 12px 12px 14px;
}

.psl-meta > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.psl-meta strong {
  color: rgba(255, 255, 255, 0.94);
  font-size: 13px;
  font-weight: 650;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.psl-meta span {
  color: rgba(255, 255, 255, 0.34);
  font-size: 11px;
}

.psl-radio {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  border: 1.5px solid rgba(255, 255, 255, 0.24);
  border-radius: 50%;
  background: transparent;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.psl-radio.is-on {
  border-color: #ff2dc2;
  background:
    radial-gradient(circle at center, #ff2dc2 0 5px, transparent 6px),
    rgba(255, 45, 194, 0.14);
  box-shadow: 0 0 0 3px rgba(255, 45, 194, 0.12);
}

.psl-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  background: rgba(22, 23, 30, 0.92);
  color: rgba(255, 255, 255, 0.7);
  font-size: 12px;
  cursor: pointer;
  transform: translateY(-50%);
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.psl-nav.is-prev {
  left: -46px;
}

.psl-nav.is-next {
  right: -46px;
}

.psl-nav:hover:not(:disabled) {
  color: #fff;
  border-color: rgba(255, 45, 194, 0.35);
  background: rgba(255, 45, 194, 0.12);
}

.psl-nav:disabled {
  opacity: 0.22;
  cursor: not-allowed;
}

.psl-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 14px;
}

.psl-dots button {
  width: 6px;
  height: 6px;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  cursor: pointer;
  transition: width 0.15s ease, background 0.15s ease;
}

.psl-dots button.is-on {
  width: 16px;
  background: linear-gradient(90deg, #ff6b5e, #ff2dc2);
}

.psl-foot {
  display: flex;
  justify-content: flex-end;
  padding: 8px 40px 22px;
}

.psl-submit {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 42px;
  padding: 0 20px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  box-shadow: 0 10px 24px rgba(255, 45, 194, 0.22);
}

.psl-submit:hover:not(:disabled) {
  filter: brightness(1.05);
}

.psl-submit:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  box-shadow: none;
}

@media (max-width: 760px) {
  .psl-head,
  .psl-body,
  .psl-foot {
    padding-left: 20px;
    padding-right: 20px;
  }

  .psl-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
  }

  .psl-nav {
    display: none;
  }

  .psl-submit {
    width: 100%;
    justify-content: center;
  }
}
.cp-page {
  padding-top: 0;
}

.cp-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.cp-title img {
  width: 44px;
  height: 44px;
}

.cp-title h1 {
  margin: 0;
  font-size: clamp(22px, 1.6vw, 28px);
  font-weight: 750;
  line-height: 1.2;
}

.cp-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
}

.cp-tabs {
  display: flex;
  align-items: center;
  gap: 2px;
  min-width: 0;
  overflow-x: auto;
}

.cp-tabs button {
  position: relative;
  height: 40px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.42);
  font-size: 14px;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.15s ease;
}

.cp-tabs button:hover {
  color: rgba(255, 255, 255, 0.78);
}

.cp-tabs button.active {
  color: #fff;
  font-weight: 650;
}

.cp-tabs button.active::after {
  content: '';
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff6b5e, #ff2dc2);
}

.cp-publish,
.cp-publish:hover,
.cp-publish:focus {
  height: 36px !important;
  padding: 0 16px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%) !important;
  font-weight: 650 !important;
}

.cp-filters {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
}

.cp-filter-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
}

.cp-filter-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.cp-filter-chip:hover {
  background: rgba(255, 255, 255, 0.07);
  border-color: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.cp-filter-chip.is-active {
  background: rgba(255, 45, 194, 0.1);
  border-color: rgba(255, 45, 194, 0.18);
}

.cp-filter-chip-label {
  color: rgba(255, 255, 255, 0.38);
}

.cp-filter-chip-label::after {
  content: '：';
}

.cp-filter-chip-value {
  color: rgba(255, 255, 255, 0.92);
  font-weight: 500;
}

.cp-filter-chip .anticon {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.4);
}

.cp-filter-menu {
  min-width: 120px;
  padding: 6px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  background: #1a1a22;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.45);
}

.cp-filter-menu button {
  width: 100%;
  height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}

.cp-filter-menu button:hover,
.cp-filter-menu button.active {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.cp-filter-menu button.active {
  background: rgba(255, 45, 194, 0.12);
}

.cp-reset {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 10px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.42);
  font-size: 13px;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.cp-reset:hover {
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
}

.cp-search {
  display: flex;
  align-items: center;
  gap: 10px;
  width: min(100%, 280px);
  height: 34px;
  padding: 0 14px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.22);
  transition: border-color 0.15s ease, background 0.15s ease;
}

.cp-search:focus-within {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.3);
}

.cp-search .anticon {
  color: rgba(255, 255, 255, 0.32);
}

.cp-search .ant-input {
  color: #fff !important;
  font-size: 13px;
}

.cp-search .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.cp-empty {
  padding: 88px 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.38);
  font-size: 14px;
}

.cp-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px 18px;
}

.cp-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: 16px;
  padding-bottom: 2px;
  cursor: pointer;
}

.cp-cover {
  position: relative;
  z-index: 1;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  background:
    radial-gradient(ellipse at 70% 30%, rgba(140, 100, 255, 0.16), transparent 55%),
    #101018;
}

.cp-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transition: transform 0.35s ease;
}

.cp-card:hover:not(.no-hover) .cp-cover img {
  transform: scale(1.04);
}

.cp-card.no-hover:hover .cp-cover img {
  transform: none;
}

.cp-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.cp-grade {
  position: absolute;
  top: 0;
  left: 10px;
  z-index: 4;
  min-width: 34px;
  padding: 7px 8px 9px;
  border-radius: 0 0 8px 8px;
  color: #2a1400;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-align: center;
  line-height: 1;
  box-shadow:
    0 6px 14px rgba(255, 140, 20, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.cp-grade.is-sss,
.cp-grade.is-ss {
  background: linear-gradient(180deg, #ffd27a 0%, #ff9a1f 55%, #f07800 100%);
}

.cp-grade.is-s {
  background: linear-gradient(180deg, #ffc56e 0%, #ff7a18 100%);
}

.cp-grade.is-a {
  background: linear-gradient(180deg, #ffb07a 0%, #ff6a3d 100%);
  color: #2a1008;
}

.cp-grade.is-b {
  background: linear-gradient(180deg, #d0d6e2 0%, #8e97a8 100%);
  color: #1c2230;
}

.cp-fav {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 4;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: rgba(0, 0, 0, 0.38);
  color: rgba(255, 255, 255, 0.78);
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: color 0.15s ease, background 0.15s ease;
}

.cp-fav:hover,
.cp-fav.is-on {
  color: #ffd27a;
  background: rgba(0, 0, 0, 0.5);
}

.cp-info {
  position: relative;
  z-index: 1;
  padding: 12px 2px 2px;
}

.cp-hover {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: flex;
  flex-direction: column;
  padding: 16px 16px 14px;
  border-radius: 16px;
  opacity: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(28, 32, 44, 0.42) 0%, rgba(12, 12, 18, 0.92) 100%);
  backdrop-filter: blur(14px);
  transition: opacity 0.2s ease;
}

.cp-card.is-platform .cp-hover {
  background:
    radial-gradient(ellipse at 88% 18%, rgba(168, 120, 255, 0.38), transparent 46%),
    radial-gradient(ellipse at 92% 88%, rgba(72, 196, 140, 0.28), transparent 42%),
    linear-gradient(180deg, rgba(36, 28, 48, 0.35) 0%, rgba(12, 12, 18, 0.94) 100%);
}

.cp-card.is-user .cp-hover {
  background:
    radial-gradient(ellipse at 12% 18%, rgba(255, 61, 154, 0.32), transparent 48%),
    radial-gradient(ellipse at 88% 88%, rgba(255, 107, 94, 0.22), transparent 42%),
    linear-gradient(180deg, rgba(36, 20, 32, 0.4) 0%, rgba(12, 12, 18, 0.94) 100%);
}

.cp-card:hover .cp-hover {
  opacity: 1;
  pointer-events: auto;
}

.cp-source {
  display: inline-flex;
  width: fit-content;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 12px;
}

.cp-hover > p {
  display: -webkit-box;
  margin: 12px 0 10px;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.82);
  font-size: 13px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.cp-hover > button {
  padding: 0;
  border: 0;
  background: none;
  color: #ff7ad9;
  font-size: 13px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

.cp-hover-foot {
  margin-top: auto;
  padding-top: 10px;
}

.cp-hover-foot h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 750;
}

.cp-hover-foot > p {
  margin: 4px 0 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.cp-info-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.cp-info h3 {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cp-info > p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.cp-price.is-negotiable {
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  font-weight: 600;
}

.cp-price {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
  color: #f5c542;
  font-size: 14px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.cp-coin {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff6b0, #f5c542 42%, #d29a12);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.cp-pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  margin-top: 28px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}

.cp-pager .ant-pagination .ant-pagination-item {
  background: transparent;
  border-color: transparent;
}

.cp-pager .ant-pagination .ant-pagination-item a {
  color: rgba(255, 255, 255, 0.55);
}

.cp-pager .ant-pagination .ant-pagination-item-active {
  background: rgba(255, 45, 194, 0.18);
  border-color: transparent;
  border-radius: 8px;
}

.cp-pager .ant-pagination .ant-pagination-item-active a {
  color: #fff;
}

.cp-pager .ant-pagination .ant-pagination-prev button,
.cp-pager .ant-pagination .ant-pagination-next button {
  color: rgba(255, 255, 255, 0.55);
}

.cp-order-head h2 {
  margin: 4px 0 6px;
  font-size: 16px;
  font-weight: 700;
}

.cp-order-head p {
  margin: 0 0 16px;
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.cp-order-roles {
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  width: fit-content;
  min-width: 280px;
  padding: 3px;
  margin-bottom: 16px;
  border-radius: 12px;
  background: #14141a;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.05);
}

.cp-order-roles button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 34px;
  padding: 0 20px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: rgba(255, 255, 255, 0.42);
  font-size: 13px;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.cp-order-roles button span {
  color: rgba(255, 255, 255, 0.28);
  font-variant-numeric: tabular-nums;
}

.cp-order-roles button:hover {
  color: rgba(255, 255, 255, 0.75);
}

.cp-order-roles button.active {
  background: #23232c;
  color: #fff;
  font-weight: 650;
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.06) inset,
    0 6px 14px rgba(0, 0, 0, 0.28);
}

.cp-order-roles button.active span {
  color: rgba(255, 255, 255, 0.55);
}

.cp-order-status {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.cp-order-status button {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 38px;
  padding: 0 14px;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.42);
  font-size: 13px;
  cursor: pointer;
  transition: color 0.15s ease;
}

.cp-order-status button em {
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.4);
  font-style: normal;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}

.cp-order-status button:hover {
  color: rgba(255, 255, 255, 0.78);
}

.cp-order-status button.active {
  color: #fff;
  font-weight: 650;
}

.cp-order-status button.active em {
  background: rgba(255, 45, 194, 0.16);
  color: #ff7ad9;
}

.cp-order-status button.active::after {
  content: '';
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: -1px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(90deg, #ff6b5e, #ff2dc2);
}

.cp-order-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}

.cp-order-tools .ant-input-affix-wrapper {
  width: 280px;
  height: 36px;
  border-color: rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: #14151c;
}

.cp-order-tools .ant-input {
  color: #fff;
  background: transparent;
}

.cp-order-tools .ant-picker {
  height: 36px;
  border-color: rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: #14151c;
}

.cp-order-tools .ant-picker-input > input {
  color: rgba(255, 255, 255, 0.82);
}

.cp-order-query,
.cp-order-reset {
  height: 36px;
  padding: 0 16px;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
}

.cp-order-query {
  border: 0;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
}

.cp-order-reset {
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
}

.cp-order-script,
.cp-order-buyer,
.cp-order-no,
.cp-order-state {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cp-order-no,
.cp-order-state {
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.cp-order-no strong,
.cp-order-script strong,
.cp-order-buyer strong {
  font-weight: 600;
}

.cp-order-no span,
.cp-order-script span,
.cp-order-buyer span,
.cp-order-state small {
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.cp-order-script img {
  width: 36px;
  height: 48px;
  border-radius: 4px;
  object-fit: cover;
}

.cp-order-buyer i {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.72);
  font-style: normal;
  font-size: 12px;
}

.cp-order-grade {
  font-style: normal;
  font-size: 12px;
  font-weight: 650;
}

.cp-order-grade.is-s {
  color: #7eb6ff;
}

.cp-order-grade.is-a {
  color: #3ee58b;
}

.cp-order-grade.is-b {
  color: #ffb046;
}

.cp-order-table.is-seller {
  min-width: 1280px;
}

.cp-order-table .is-time {
  color: rgba(255, 255, 255, 0.55);
  white-space: nowrap;
}

.cp-tag.is-sign-unsigned {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
}

.cp-tag.is-order-wait {
  background: rgba(255, 176, 70, 0.14);
  color: #ffb046;
}

.cp-tag.is-order-cancel {
  background: rgba(255, 96, 96, 0.14);
  color: #ff7070;
}

.cp-order-actions.is-stack {
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
}

.cp-order-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 14px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.cp-order-pager > div {
  display: flex;
  align-items: center;
  gap: 12px;
}

.cp-order-pager em {
  font-style: normal;
  color: rgba(255, 255, 255, 0.45);
}

.cp-order-pager .ant-pagination .ant-pagination-item a,
.cp-order-pager .ant-pagination .ant-pagination-prev button,
.cp-order-pager .ant-pagination .ant-pagination-next button {
  color: rgba(255, 255, 255, 0.55);
}

.cp-order-pager .ant-pagination .ant-pagination-item-active {
  border-color: transparent;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
}

.cp-order-pager .ant-pagination .ant-pagination-item-active a {
  color: #fff;
}

.cp-order-notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid rgba(64, 158, 255, 0.28);
  border-radius: 10px;
  background: rgba(64, 158, 255, 0.08);
  color: rgba(190, 220, 255, 0.88);
  font-size: 12px;
  line-height: 1.6;
}

.cp-order-notice .anticon {
  margin-top: 2px;
  color: #6eb6ff;
  font-size: 15px;
}

.cp-order-notice p {
  margin: 0;
}

.cp-order-table-wrap {
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
}

.cp-order-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
}

.cp-order-table th,
.cp-order-table td {
  padding: 14px 16px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.cp-order-table th {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.02);
}

.cp-order-table td {
  color: rgba(255, 255, 255, 0.86);
  font-size: 13px;
}

.cp-order-table tbody tr:last-child td {
  border-bottom: 0;
}

.cp-order-table tbody tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

.cp-order-table .is-mono {
  color: rgba(255, 255, 255, 0.55);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
}

.cp-order-empty {
  padding: 48px 16px !important;
  text-align: center !important;
  color: rgba(255, 255, 255, 0.38) !important;
}

.cp-tag {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  white-space: nowrap;
}

.cp-tag.is-pay-paid,
.cp-tag.is-sign-signed,
.cp-tag.is-order-done {
  background: rgba(62, 229, 139, 0.14);
  color: #3ee58b;
}

.cp-tag.is-pay-refunded {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
}

.cp-tag.is-pay-unpaid {
  background: rgba(255, 211, 106, 0.14);
  color: #ffd36a;
}

.cp-tag.is-sign-pending,
.cp-tag.is-order-wait_sign {
  background: rgba(255, 176, 70, 0.14);
  color: #ffb046;
}

.cp-tag.is-sign-overdue,
.cp-tag.is-order-cancelled,
.cp-tag.is-order-rejected {
  background: rgba(255, 96, 96, 0.14);
  color: #ff7070;
}

.cp-tag.is-order-reviewing {
  background: rgba(255, 176, 70, 0.14);
  color: #ffb046;
}

button.cp-tag {
  border: 0;
  cursor: pointer;
}

.cp-order-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.cp-order-actions button {
  padding: 0;
  border: 0;
  background: none;
  color: #8eb7ff;
  font-size: 13px;
  cursor: pointer;
}

.cp-order-actions button:hover {
  color: #b6d0ff;
}

.cp-mine-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.cp-mine-head h2 {
  margin: 0 0 6px;
  font-size: 20px;
  font-weight: 700;
}

.cp-mine-head p {
  margin: 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.cp-mine-publish {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  border: 0;
  border-radius: 999px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 13px;
  font-weight: 650;
  cursor: pointer;
  white-space: nowrap;
}

.cp-mine-publish:hover {
  filter: brightness(1.06);
}

.cp-withdraw-confirm .ant-modal-content,
.cp-withdraw-confirm .ant-modal-container {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  background: #1c1d24;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.45);
}

.cp-withdraw-confirm .ant-modal-confirm-title,
.cp-withdraw-confirm .ant-modal-confirm-content {
  color: rgba(255, 255, 255, 0.88);
}

.cp-withdraw-confirm .ant-modal-confirm-content {
  color: rgba(255, 255, 255, 0.55);
}

.cp-withdraw-confirm .ant-btn-primary {
  border: 0;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  box-shadow: none;
}

.cp-withdraw-confirm .ant-btn-default {
  border-color: rgba(255, 255, 255, 0.12);
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
}

.cp-mine-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  padding: 10px 14px;
  border: 1px solid rgba(62, 229, 139, 0.22);
  border-radius: 999px;
  background: rgba(62, 229, 139, 0.08);
}

.cp-mine-notice .anticon {
  color: #3ee58b;
  font-size: 15px;
}

.cp-mine-notice p {
  flex: 1;
  margin: 0;
  color: rgba(210, 255, 230, 0.88);
  font-size: 13px;
}

.cp-mine-notice button {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: rgba(255, 255, 255, 0.4);
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
}

.cp-mine-notice button:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.cp-mine-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
}

.cp-mine-filters button {
  height: 32px;
  padding: 0 14px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.55);
  font-size: 13px;
  cursor: pointer;
}

.cp-mine-filters button:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.cp-mine-filters button.active {
  background: rgba(255, 45, 194, 0.16);
  border-color: rgba(255, 45, 194, 0.28);
  color: #fff;
  font-weight: 600;
}

.cp-mine-table-wrap {
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.025);
}

.cp-mine-table {
  width: 100%;
  min-width: 920px;
  border-collapse: collapse;
}

.cp-mine-table th,
.cp-mine-table td {
  padding: 14px 16px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.cp-mine-table th {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.02);
}

.cp-mine-table td {
  color: rgba(255, 255, 255, 0.86);
  font-size: 13px;
}

.cp-mine-table tbody tr:last-child td {
  border-bottom: 0;
}

.cp-mine-table tbody tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

.cp-mine-empty {
  padding: 48px 16px !important;
  text-align: center !important;
  color: rgba(255, 255, 255, 0.38) !important;
}

.cp-mine-script {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.cp-mine-script img {
  width: 52px;
  height: 36px;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 8px;
  background: #121218;
}

.cp-mine-script div {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.cp-mine-script strong {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cp-mine-script span {
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.cp-mine-grade {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-style: normal;
  font-weight: 700;
}

.cp-mine-grade.is-sss,
.cp-mine-grade.is-ss,
.cp-mine-grade.is-s {
  background: rgba(245, 200, 76, 0.16);
  color: #f5c84c;
}

.cp-mine-grade.is-a {
  background: rgba(255, 45, 194, 0.14);
  color: #ff7ad9;
}

.cp-mine-grade.is-b {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.65);
}

.cp-mine-status {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid transparent;
  font-size: 12px;
  white-space: nowrap;
}

button.cp-mine-status {
  cursor: pointer;
}

.cp-mine-status.is-green {
  border-color: rgba(62, 229, 139, 0.35);
  background: rgba(62, 229, 139, 0.1);
  color: #3ee58b;
}

.cp-mine-status.is-blue {
  border-color: rgba(110, 182, 255, 0.35);
  background: rgba(110, 182, 255, 0.1);
  color: #6eb6ff;
}

.cp-mine-status.is-orange {
  border-color: rgba(255, 176, 64, 0.35);
  background: rgba(255, 176, 64, 0.1);
  color: #ffb040;
}

.cp-mine-status.is-purple {
  border-color: rgba(167, 139, 250, 0.35);
  background: rgba(167, 139, 250, 0.12);
  color: #c4b5fd;
}

.cp-mine-status.is-red {
  border-color: rgba(255, 107, 107, 0.35);
  background: rgba(255, 107, 107, 0.1);
  color: #ff8a8a;
}

.cp-mine-table .is-time {
  color: rgba(255, 255, 255, 0.45);
  white-space: nowrap;
}

.cp-mine-actions {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 2px;
}

.cp-mine-actions span {
  display: inline-flex;
  align-items: center;
  gap: 2px;
}

.cp-mine-actions i {
  margin: 0 4px;
  color: rgba(255, 255, 255, 0.22);
  font-style: normal;
}

.cp-mine-actions button {
  padding: 0;
  border: 0;
  background: none;
  color: #8eb7ff;
  font-size: 13px;
  cursor: pointer;
}

.cp-mine-actions button:hover {
  color: #b6d0ff;
}

.cp-mine-pager {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  margin-top: 16px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.cp-mine-pager .ant-pagination .ant-pagination-item a,
.cp-mine-pager .ant-pagination .ant-pagination-prev button,
.cp-mine-pager .ant-pagination .ant-pagination-next button {
  color: rgba(255, 255, 255, 0.55);
}

.cp-mine-pager .ant-pagination .ant-pagination-item-active {
  border-color: rgba(255, 45, 194, 0.4);
  background: rgba(255, 45, 194, 0.14);
}

.cp-mine-pager .ant-pagination .ant-pagination-item-active a {
  color: #fff;
}

@media (max-width: 1439px) {
  .cp-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1199px) {
  .cp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cp-search {
    width: 100%;
  }

  .cp-filters {
    align-items: stretch;
  }
}

@media (min-width: 1920px) {
  .cp-title img {
    width: 52px;
    height: 52px;
  }

  .cp-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 24px 18px;
  }
}
/* 首页样式（1440 基准等比适配） */
.home-title {
  display: flex;
  align-items: flex-start;
  gap: clamp(8px, 0.83vw, 14px);
  margin-bottom: clamp(12px, 1.25vw, 20px);
}

.home-title img {
  width: clamp(36px, 3.05vw, 52px);
  height: clamp(36px, 3.05vw, 52px);
}

.home-title h1 {
  margin: 0;
  font-size: clamp(22px, 1.6vw, 28px);
  font-weight: 750;
  line-height: 1.2;
}

.home-title p {
  margin: 6px 0 0;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}

.compose-card {
  /* 1440 设计基准：min-height/padding 用 vw 等比缩放 */
  min-height: clamp(380px, 31.94vw, 540px);
  padding: clamp(16px, 1.53vw, 24px) clamp(16px, 1.67vw, 24px) clamp(10px, 1vw, 14px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  background:
    radial-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px) 0 0 / 22px 22px,
    #14141a;
  display: flex;
  flex-direction: column;
}

.compose-tabs {
  display: flex;
  width: fit-content;
  padding: clamp(3px, 0.28vw, 5px);
  margin-bottom: clamp(12px, 1.25vw, 20px);
  border-radius: 999px;
  background: #1c1c24;
}

.compose-tabs button {
  height: clamp(30px, 2.5vw, 40px);
  padding: 0 clamp(14px, 1.25vw, 22px);
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
}

.compose-tabs button.active {
  background: #fff;
  color: #111;
  font-weight: 650;
}

.compose-hint {
  margin: 0 0 22px;
  color: rgba(255, 255, 255, 0.55);
  font-size: 14px;
}

.compose-prompt {
  flex: 1;
  min-height: clamp(110px, 9.72vw, 170px);
  margin-bottom: clamp(8px, 0.83vw, 14px);
  color: #fff !important;
  font-size: clamp(13px, 0.97vw, 15px);
  line-height: 1.7;
  resize: none;
}

.compose-prompt::placeholder {
  color: rgba(255, 255, 255, 0.38);
}

.compose-prompt.ant-input,
.compose-prompt.ant-input:focus,
.compose-prompt.ant-input:focus-within {
  border-color: transparent !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}

.compose-submit:disabled,
.compose-submit:disabled:hover,
.compose-submit:disabled:focus {
  /* 禁用态不要压暗成一块紫疙瘩，改成可辨识的浅色描边，布局仍与启用态同尺寸 */
  background: rgba(255, 45, 194, 0.14) !important;
  color: rgba(255, 255, 255, 0.45) !important;
  cursor: not-allowed;
  transform: none;
  opacity: 1;
}

.compose-bottom {
  margin-top: auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.compose-upload {
  width: clamp(72px, 6.11vw, 96px);
  height: clamp(58px, 5vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  margin: 0;
  border: 1px dashed rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background: transparent;
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  cursor: pointer;
}

.compose-upload:hover {
  border-color: rgba(255, 61, 154, 0.5);
  color: #fff;
}

.compose-toolbar {
  /* 不要外层「罩子」：筛选项与按钮直接落在卡片背景上，只保留一行对齐 */
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: nowrap;
  width: 100%;
  box-sizing: border-box;
}

.compose-filters {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 0;
  flex-wrap: nowrap;
}

.compose-chip {
  display: inline-flex;
  align-items: center;
  /* 1440 设计基准：40px 高 */
  height: clamp(32px, 2.78vw, 42px);
  border-radius: 6px;
  border: 1px solid transparent;
  box-sizing: border-box;
}

.compose-chip.compose-audience,
.audience-trigger.compose-audience {
  /* 1440 设计基准：120px 宽 */
  width: clamp(96px, 8.33vw, 128px);
  min-width: clamp(96px, 8.33vw, 128px);
  padding: 0 10px;
  gap: 8px;
  background: rgba(0, 157, 255, 0.1);
  border-color: rgba(0, 157, 255, 0.1);
  color: #fff;
  cursor: pointer;
}

.audience-trigger-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: clamp(13px, 0.97vw, 15px);
  text-align: left;
}

.audience-trigger .anticon {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.75);
}

.compose-chip.compose-genre,
.genre-trigger.compose-genre {
  /* 1440 设计基准：104px 宽 */
  min-width: clamp(84px, 7.22vw, 112px);
  max-width: clamp(120px, 12vw, 190px);
  padding: 0 10px;
  gap: 8px;
  background: rgba(255, 45, 194, 0.1);
  border-color: rgba(255, 45, 194, 0.1);
  color: #fff;
  cursor: pointer;
}

.genre-trigger-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: clamp(13px, 0.97vw, 15px);
  text-align: left;
}

.genre-trigger .anticon {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.75);
}

.compose-chip.compose-model,
.model-trigger.compose-model {
  /* 1440 设计基准：264px 宽 */
  min-width: clamp(200px, 18.33vw, 290px);
  max-width: clamp(240px, 22vw, 340px);
  padding: 0 10px;
  gap: 8px;
  background: rgba(255, 206, 31, 0.1);
  border-color: rgba(255, 206, 31, 0.1);
  color: #fff;
  cursor: pointer;
}

.model-trigger-text {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: clamp(13px, 0.97vw, 15px);
  text-align: left;
}

.model-trigger .anticon {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.75);
}

.compose-chip .ant-select {
  width: 100%;
  height: 100%;
}

.compose-chip .ant-select-selector {
  height: clamp(26px, 2.22vw, 34px) !important;
  padding: 0 8px !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.compose-chip .ant-select-selection-item,
.compose-chip .ant-select-selection-placeholder {
  line-height: clamp(26px, 2.22vw, 34px) !important;
  color: #fff !important;
  font-size: 12px;
}

.compose-chip .ant-select-arrow {
  color: rgba(255, 255, 255, 0.75) !important;
}

.compose-actions {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
}

.compose-cost {
  color: rgba(255, 255, 255, 0.38);
  font-size: 12px;
}

.compose-submit,
.compose-submit:hover,
.compose-submit:focus {
  height: clamp(34px, 2.78vw, 44px) !important;
  padding: 0 clamp(16px, 1.5vw, 24px) !important;
  border: 0 !important;
  border-radius: 26px !important;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%) !important;
  font-weight: 650 !important;
}

.compose-sparkle {
  display: inline-block;
  width: 16px;
  height: 16px;
  vertical-align: -0.125em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

/* 窄屏：控制栏整体换行，避免芯片被压扁、按钮挤到边缘 */
@media (max-width: 960px) {
  .compose-toolbar {
    flex-wrap: wrap;
  }

  .compose-filters {
    flex-wrap: wrap;
  }

  .compose-actions {
    margin-left: 0;
    width: 100%;
    justify-content: flex-end;
  }

  .compose-chip.compose-model,
  .model-trigger.compose-model {
    min-width: 180px;
    max-width: 100%;
  }
}

.compose-card.is-upload {
  padding-bottom: 18px;
}

.upload-panel {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.upload-file-input {
  display: none;
}

.upload-zone {
  flex: 1;
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 36px 24px 28px;
  border: 1px dashed rgba(255, 255, 255, 0.16);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.015);
  transition: border-color 0.15s ease, background 0.15s ease;
}

.upload-zone.is-dragging,
.upload-zone:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(255, 255, 255, 0.03);
}

.upload-zone.has-file {
  border-color: rgba(255, 45, 194, 0.28);
}

.upload-icon-btn {
  width: 72px;
  height: 72px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}

.upload-icon-btn img {
  width: 72px;
  height: 72px;
  display: block;
  opacity: 0.85;
  transition: opacity 0.15s ease, transform 0.15s ease;
}

.upload-icon-btn:hover img {
  opacity: 1;
  transform: translateY(-2px);
}

.upload-filename {
  margin: -4px 0 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
}

.upload-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

.upload-actions button {
  height: 36px;
  padding: 0 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.upload-actions button:hover {
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.18);
  color: #fff;
}

.upload-tip {
  margin: 4px 0 0;
  max-width: 520px;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
}

.upload-footer {
  display: flex;
  justify-content: flex-end;
  margin-top: 16px;
}

.paste-modal.ant-modal .ant-modal-content {
  padding: 0;
  border: 1px solid #373842;
  border-radius: 14px;
  background: #1a1b22;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.paste-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.paste-panel {
  color: #fff;
}

.paste-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 56px;
  padding: 0 20px;
}

.paste-head h3 {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 16px;
  font-weight: 600;
}

.paste-close {
  width: 32px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}

.paste-close:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.paste-body {
  position: relative;
  padding: 0 20px 8px;
}

.paste-textarea.ant-input,
.paste-textarea.ant-input:hover,
.paste-textarea.ant-input:focus {
  min-height: 320px !important;
  padding: 16px 16px 36px !important;
  background: #121318 !important;
  border: 1px solid #2a2b33 !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.9) !important;
  font-size: 14px;
  line-height: 1.7;
  resize: none;
}

.paste-textarea.ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.paste-count {
  position: absolute;
  right: 34px;
  bottom: 22px;
  color: rgba(255, 255, 255, 0.35);
  font-size: 12px;
  pointer-events: none;
}

.paste-file-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 20px 4px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.paste-file-row button {
  height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  font-size: 12px;
  cursor: pointer;
}

.paste-file-row button:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.paste-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 20px 20px;
}

.paste-cancel,
.paste-ok {
  height: 36px;
  padding: 0 18px;
  border: 0;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
}

.paste-cancel {
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.75);
}

.paste-cancel:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.paste-ok {
  background: rgba(255, 255, 255, 0.22);
  color: rgba(255, 255, 255, 0.45);
}

.paste-ok:not(:disabled) {
  background: #fff;
  color: #111;
  font-weight: 650;
}

.paste-ok:disabled {
  cursor: not-allowed;
}

.home-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: clamp(20px, 1.94vw, 30px) 0 clamp(12px, 1.1vw, 18px);
}

.home-section-head h2 {
  margin: 0;
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 700;
}

.home-section-head button {
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
}

.work-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  /* 1440 时列宽约 270：列间距 22px */
  gap: clamp(14px, 1.25vw, 20px) clamp(14px, 1.53vw, 24px);
}

.work-card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border-radius: clamp(14px, 1.25vw, 20px);
  padding-bottom: 4px;
}

.work-cover {
  position: relative;
  overflow: hidden;
  /* 1440 设计基准：封面 270×142（约 1.9:1） */
  aspect-ratio: 270 / 142;
  border-radius: clamp(8px, 0.69vw, 12px);
  background: #101018;
}

.work-default {
  position: relative;
  z-index: 1;
  padding: clamp(8px, 0.69vw, 12px) clamp(3px, 0.28vw, 5px) clamp(12px, 1.11vw, 18px);
}

.work-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 封面左上角评级徽标：橙色方块，与设计稿一致 */
.work-grade {
  position: absolute;
  top: 8px;
  left: 8px;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  background: linear-gradient(135deg, #ffb347, #ff8a00);
  color: #2b1600;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

.work-hover {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  padding: clamp(12px, 1.11vw, 18px) clamp(14px, 1.25vw, 20px) clamp(10px, 0.97vw, 16px);
  border-radius: clamp(14px, 1.25vw, 20px);
  opacity: 0;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(28, 32, 44, 0.42) 0%, rgba(12, 12, 18, 0.92) 100%);
  backdrop-filter: blur(14px);
  transition: opacity 0.2s ease;
}

.work-card.is-platform .work-hover {
  background:
    radial-gradient(ellipse at 88% 18%, rgba(168, 120, 255, 0.38), transparent 46%),
    radial-gradient(ellipse at 92% 88%, rgba(72, 196, 140, 0.28), transparent 42%),
    linear-gradient(180deg, rgba(36, 28, 48, 0.35) 0%, rgba(12, 12, 18, 0.94) 100%);
}

.work-card.is-user .work-hover {
  background:
    radial-gradient(ellipse at 12% 18%, rgba(255, 61, 154, 0.32), transparent 48%),
    radial-gradient(ellipse at 88% 88%, rgba(255, 107, 94, 0.22), transparent 42%),
    linear-gradient(180deg, rgba(36, 20, 32, 0.4) 0%, rgba(12, 12, 18, 0.94) 100%);
}

.work-card:hover .work-hover {
  opacity: 1;
  pointer-events: auto;
}

.work-source {
  display: inline-flex;
  width: fit-content;
  padding: clamp(3px, 0.28vw, 5px) clamp(8px, 0.69vw, 12px);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: clamp(11px, 0.83vw, 13px);
}

.work-summary {
  display: -webkit-box;
  margin: 12px 0 10px;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.82);
  font-size: clamp(12px, 0.9vw, 14px);
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.work-detail-link {
  padding: 0;
  border: 0;
  background: none;
  color: #c084fc;
  font-size: clamp(12px, 0.9vw, 14px);
  text-align: left;
  cursor: pointer;
}

.work-hover-foot {
  margin-top: auto;
  padding-top: 12px;
}

.work-hover-foot h3 {
  margin: 0;
  font-size: clamp(16px, 1.25vw, 20px);
  font-weight: 750;
}

.work-hover-foot p {
  margin: 4px 0 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: clamp(11px, 0.83vw, 13px);
}

.work-price {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #f5a623;
  font-size: clamp(16px, 1.25vw, 20px);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.work-coin {
  width: clamp(14px, 1.11vw, 18px);
  height: clamp(14px, 1.11vw, 18px);
  border-radius: 50%;
  background: radial-gradient(circle at 35% 30%, #fff6b0, #f5c542 42%, #d29a12);
}

.work-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.work-meta h3 {
  margin: 0;
  min-width: 0;
  font-size: clamp(13px, 0.97vw, 16px);
  font-weight: 650;
}

.work-author-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 6px;
}

.work-author-row .work-badge.is-state {
  flex-shrink: 0;
}


.work-author-row p {
  margin: 0;
  min-width: 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: clamp(11px, 0.83vw, 13px);
}

.work-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: clamp(1px, 0.07vw, 2px) clamp(5px, 0.42vw, 7px);
  border-radius: clamp(4px, 0.42vw, 7px);
  font-size: clamp(11px, 0.83vw, 13px);
  white-space: nowrap;
}

/* 卡片价格里的金币图标：比 hover 层小一号，跟 13px 文字对齐 */
.work-badge .work-coin {
  width: clamp(10px, 0.83vw, 12px);
  height: clamp(10px, 0.83vw, 12px);
  flex-shrink: 0;
}

.work-badge.is-green {
  color: #3ee58b;
}

.work-badge.is-state {
  width: clamp(34px, 2.64vw, 42px);
  height: clamp(15px, 1.18vw, 19px);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  color: #fff;
  font-size: clamp(9px, 0.69vw, 11px);
  line-height: clamp(15px, 1.18vw, 19px);
  box-sizing: border-box;
}

.work-badge.is-pink {
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
}

.work-badge.is-mint {
  background: linear-gradient(168deg, #b7ff6e 0%, #00b26b 50%);
}

@media (max-width: 1279px) {
  .work-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1099px) {
  .work-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1920px) {
  .home-title img {
    width: 52px;
    height: 52px;
  }

  /* 版权卡片保持 4 列等比放大，不额外增加列数（与 1440 设计稿一致） */
}

.model-popover.ant-popover .ant-popover-inner,
.model-popover .ant-popover-inner {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 10px !important;
  background: #161617 !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

.model-popover .ant-popover-inner-content,
.model-popover .ant-popover-container {
  background: #161617;
}

.model-panel {
  display: grid;
  /* 宽度固定，高度由内容决定：模型少的时候不再留一大片空白 */
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  width: clamp(620px, 50vw, 780px);
  min-height: 0;
  color: #fff;
  background: #161617;
  border-radius: 10px;
}

/* 创作台/预览页输入框模式：只选模型，去掉右侧地区/集数列，避免右侧空一大片 */
.model-panel.model-panel-compact {
  grid-template-columns: minmax(0, 1fr);
  width: clamp(300px, 26.39vw, 400px);
  min-height: 0;
}

.model-panel-left {
  padding: clamp(14px, 1.25vw, 20px) clamp(6px, 0.56vw, 9px) clamp(14px, 1.25vw, 20px) clamp(14px, 1.25vw, 20px);
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  background: #161617;
}

.model-panel-right {
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 1.25vw, 20px) clamp(12px, 1.11vw, 18px);
  background: #161617;
}

.model-panel-title {
  margin: 0 0 clamp(8px, 0.69vw, 12px);
  color: #fff;
  font-size: clamp(12px, 0.9vw, 14px);
  line-height: clamp(20px, 1.67vw, 26px);
  font-weight: 400;
}

.model-panel-right .model-panel-title:not(:first-child) {
  margin-top: clamp(14px, 1.25vw, 20px);
}

.model-list {
  display: flex;
  flex-direction: column;
  gap: clamp(3px, 0.28vw, 5px);
  max-height: clamp(320px, 27.78vw, 420px);
  overflow: auto;
  padding-right: clamp(4px, 0.42vw, 7px);
  margin: 0;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
}

.model-list::-webkit-scrollbar {
  width: 4px;
}

.model-list::-webkit-scrollbar-track {
  background: transparent;
}

.model-list::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
}

.model-list::-webkit-scrollbar-thumb:hover {
  background: rgba(255, 255, 255, 0.28);
}

.model-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: clamp(9px, 0.83vw, 14px);
  width: 100%;
  padding: clamp(8px, 0.69vw, 11px) clamp(28px, 2.5vw, 40px) clamp(8px, 0.69vw, 11px) 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.model-item:hover,
.model-item.active {
  background: transparent;
}

.model-item-main {
  flex: 1;
  min-width: 0;
}

.model-item-name {
  margin-bottom: clamp(2px, 0.21vw, 3px);
  font-size: clamp(14px, 1.04vw, 17px);
  line-height: clamp(20px, 1.53vw, 24px);
  font-weight: 500;
}

.model-item-desc {
  color: rgba(255, 255, 255, 0.42);
  font-size: clamp(11px, 0.83vw, 13px);
  line-height: clamp(16px, 1.25vw, 20px);
}

/* 价格作为名称下方的一行小字，不再和名称抢横向空间 */
.model-item-cost {
  margin-top: clamp(2px, 0.21vw, 4px);
  color: #3ee58b;
  font-size: clamp(10px, 0.76vw, 12px);
  line-height: 1.5;
  white-space: normal;
  word-break: break-word;
}

.model-item-check {
  position: absolute;
  top: clamp(11px, 0.97vw, 16px);
  right: clamp(9px, 0.83vw, 14px);
  width: clamp(14px, 1.11vw, 18px);
  height: clamp(14px, 1.11vw, 18px);
  object-fit: contain;
}

.model-chips-wrap {
  /* 设计与截图一致：芯片按内容宽度排列，不是四等分网格 */
  display: flex;
  flex-wrap: wrap;
  gap: clamp(4px, 0.42vw, 7px);
  padding: clamp(3px, 0.28vw, 5px);
  border-radius: clamp(16px, 1.39vw, 22px);
  background: rgba(255, 255, 255, 0.06);
}

.model-chips-wrap .model-chip {
  min-width: 0;
  padding: 0 clamp(10px, 0.97vw, 16px);
  justify-content: center;
  white-space: nowrap;
  font-size: clamp(11px, 0.83vw, 13px);
}

.model-chip {
  display: inline-flex;
  align-items: center;
  height: clamp(24px, 1.94vw, 32px);
  padding: 0 clamp(10px, 0.97vw, 16px);
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(11px, 0.83vw, 13px);
  cursor: pointer;
}

.model-chip.active {
  background: #fff;
  color: #111111;
  font-weight: 650;
}

/* 工作台：发布地区/集数在创建时已定稿，这里只回显不允许改 */
.model-panel-readonly .model-chip:disabled {
  cursor: default;
  opacity: 0.55;
}

.model-panel-readonly .model-chip.active:disabled {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
  font-weight: 500;
  opacity: 1;
}

.audience-popover,
.audience-popover.ant-popover,
.audience-popover .ant-popover-content,
.audience-popover .ant-popover-inner,
.audience-popover .ant-popover-inner-content,
.audience-popover .ant-popover-container,
.genre-popover,
.genre-popover.ant-popover,
.genre-popover .ant-popover-inner,
.genre-popover .ant-popover-inner-content {
  --ant-color-bg-elevated: #161617;
}

.audience-popover.ant-popover .ant-popover-inner,
.audience-popover .ant-popover-inner {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 10px !important;
  background: #161617 !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

.audience-panel {
  /* 两条内容不需要太宽，收窄避免大片空白 */
  width: clamp(150px, 11.67vw, 190px);
  min-height: 0;
  padding: clamp(6px, 0.56vw, 9px);
  color: #fff;
  background: #161617;
  border-radius: 10px;
}

.audience-popover .audience-item {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  height: clamp(38px, 3.06vw, 46px);
  padding: 0 clamp(30px, 2.5vw, 40px) 0 clamp(12px, 0.97vw, 16px);
  border: 0;
  border-radius: 8px;
  background: transparent;
  background-color: transparent;
  color: rgba(255, 255, 255, 0.85);
  /* 1440 设计基准：文字 32×24 */
  font-size: clamp(13px, 0.97vw, 16px);
  line-height: clamp(20px, 1.67vw, 26px);
  font-weight: 400;
  text-align: left;
  cursor: pointer;
}

.audience-popover .audience-item.is-selected,
.audience-popover .audience-item.is-selected:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  background-color: rgba(255, 255, 255, 0.06) !important;
  color: #fff !important;
}

.audience-item-check {
  position: absolute;
  top: 50%;
  right: 12px;
  /* 1440 设计基准：勾选 16×16 */
  width: clamp(14px, 1.11vw, 18px);
  height: clamp(14px, 1.11vw, 18px);
  transform: translateY(-50%);
  object-fit: contain;
}

.genre-popover.ant-popover .ant-popover-inner,
.genre-popover .ant-popover-inner {
  padding: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 10px !important;
  background: #161617 !important;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

.genre-panel,
.genre-panel-head,
.genre-panel-body,
.genre-categories,
.genre-tags {
  background: #161617;
}

.genre-panel {
  /* 1440 设计基准：480×421 */
  width: clamp(420px, 33.33vw, 520px);
  min-height: clamp(380px, 29.24vw, 450px);
  color: #fff;
  border-radius: 10px;
}

.genre-panel-head {
  padding: clamp(14px, 1.25vw, 20px) clamp(14px, 1.25vw, 20px) clamp(10px, 0.83vw, 14px);
}

.genre-panel-head h3 {
  margin: 0;
  font-size: clamp(14px, 1.11vw, 18px);
  line-height: clamp(20px, 1.67vw, 26px);
  font-weight: 650;
}

.genre-panel-head p {
  margin: clamp(5px, 0.42vw, 7px) 0 clamp(10px, 0.97vw, 16px);
  color: rgba(255, 255, 255, 0.45);
  font-size: clamp(11px, 0.83vw, 13px);
  line-height: clamp(20px, 1.67vw, 26px);
}

.genre-tabs {
  display: flex;
  gap: clamp(8px, 0.69vw, 12px);
}

.genre-tabs button {
  height: clamp(30px, 2.5vw, 38px);
  padding: 0 clamp(14px, 1.25vw, 20px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  background: transparent;
  color: rgba(255, 255, 255, 0.72);
  font-size: clamp(12px, 0.9vw, 14px);
  cursor: pointer;
}

.genre-tabs button.active {
  border-color: #fff;
  background: #fff;
  color: #111;
  font-weight: 650;
}

.genre-panel-body {
  display: grid;
  grid-template-columns: clamp(120px, 9.72vw, 150px) 1fr;
  min-height: clamp(270px, 20.83vw, 320px);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.genre-categories {
  display: flex;
  flex-direction: column;
  gap: clamp(2px, 0.14vw, 3px);
  padding: clamp(8px, 0.69vw, 12px) clamp(6px, 0.56vw, 10px);
  border-right: 1px solid rgba(255, 255, 255, 0.06);
}

.genre-category {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(6px, 0.56vw, 10px);
  /* 行高给足，24px 配 13px 字太挤 */
  height: clamp(28px, 2.08vw, 34px);
  padding: 0 clamp(8px, 0.69vw, 12px);
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: clamp(12px, 0.9vw, 14px);
  text-align: left;
  cursor: pointer;
}

.genre-category.active {
  color: #fff;
}

.genre-category .anticon {
  /* 右侧箭头与 13px 文字匹配，不要再用 16~18px 的大图标 */
  font-size: clamp(11px, 0.83vw, 13px);
  color: rgba(255, 255, 255, 0.7);
}

.genre-tags {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
  gap: clamp(8px, 0.69vw, 12px) clamp(12px, 1.25vw, 20px);
  padding: clamp(12px, 1.11vw, 18px) clamp(14px, 1.25vw, 20px);
}

.genre-tag {
  display: inline-flex;
  align-items: center;
  gap: clamp(4px, 0.42vw, 8px);
  /* 标签高度给足，避免文字上下贴边 */
  height: clamp(28px, 2.08vw, 34px);
  padding: 0 clamp(10px, 0.83vw, 14px);
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(12px, 0.9vw, 14px);
  cursor: pointer;
}

.genre-tag.active {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

.genre-tag .anticon {
  /* 选中标签的 × 与 13px 文字匹配，别用 16px 的大图标 */
  font-size: clamp(10px, 0.76vw, 12px);
  color: rgba(255, 255, 255, 0.55);
}

/* 题材库空态：后台还没配数据或接口加载中 */
.genre-empty {
  display: inline-block;
  padding: 12px 0;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}
/* 模型/地区/集数面板的空态与自定义集数 */
.model-empty {
  display: inline-block;
  padding: 8px 2px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.model-chip.is-input {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0 8px;
  cursor: text;
  /* 与选中态保持一致：白底，看起来仍是同一个 chip */
  background: #fff;
  color: #111111;
}

.model-chip.is-input .ant-input-number {
  width: 56px;
  background: transparent;
  border: 0;
}

.model-chip.is-input .ant-input-number-input {
  padding: 0;
  height: 20px;
  text-align: center;
  color: #111111;
  font-size: 13px;
  font-weight: 650;
}

.model-chip.is-input .ant-input-number-handler-wrap {
  display: none;
}
.upload-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
}/* 使用手册：左目录 + 右正文 */
.manual-page {
  display: flex;
  gap: 20px;
  height: 100%;
  min-height: 0;
  padding: 4px 0 8px;
}

.manual-page.is-empty {
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.manual-empty-title {
  margin: 0;
  font-size: 15px;
  color: rgba(255, 255, 255, 0.85);
}

.manual-empty-tip {
  margin: 0;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
}

/* 左侧目录 */
.manual-nav {
  flex: none;
  width: 236px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: 14px 10px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.manual-nav-title {
  padding: 0 10px 10px;
  font-size: 13px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.55);
}

.manual-nav-list {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.manual-nav-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  border: none;
  border-radius: 10px;
  text-align: left;
  cursor: pointer;
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  transition: background 0.15s ease, color 0.15s ease;
}

.manual-nav-item strong {
  font-size: 13.5px;
  font-weight: 500;
}

.manual-nav-item em {
  font-size: 12px;
  font-style: normal;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.4);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.manual-nav-item:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.manual-nav-item.is-active {
  background: rgba(255, 45, 194, 0.14);
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255, 45, 194, 0.35);
}

/* 右侧正文 */
.manual-body {
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow-y: auto;
  padding: 22px 26px 32px;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.07);
}

.manual-body h2 {
  margin: 0 0 6px;
  font-size: 19px;
  font-weight: 600;
  color: #fff;
}

.manual-summary {
  margin: 0 0 18px;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.45);
}

.manual-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 60px 0;
}

/* 富文本正文 */
.manual-content {
  font-size: 13.5px;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.78);
  word-break: break-word;
}

.manual-content h1,
.manual-content h2,
.manual-content h3,
.manual-content h4 {
  margin: 22px 0 10px;
  color: #fff;
  font-weight: 600;
  line-height: 1.5;
}

.manual-content h1 {
  font-size: 18px;
}

.manual-content h2 {
  font-size: 16px;
}

.manual-content h3,
.manual-content h4 {
  font-size: 14.5px;
}

.manual-content p {
  margin: 0 0 12px;
}

.manual-content ul,
.manual-content ol {
  margin: 0 0 12px;
  padding-left: 22px;
}

.manual-content li {
  margin: 4px 0;
}

.manual-content img {
  max-width: 100%;
  height: auto;
  margin: 10px 0;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.manual-content a {
  color: #ff67c3;
  text-decoration: none;
}

.manual-content a:hover {
  text-decoration: underline;
}

.manual-content blockquote {
  margin: 12px 0;
  padding: 8px 14px;
  border-left: 3px solid rgba(255, 45, 194, 0.5);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(255, 255, 255, 0.6);
}

.manual-content code {
  padding: 2px 6px;
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.08);
  font-size: 12.5px;
}

.manual-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
}

.manual-content th,
.manual-content td {
  padding: 8px 10px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 13px;
}

.manual-content th {
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
  font-weight: 500;
}
.points-shop-modal.ant-modal .ant-modal-content {
  padding: 0;
  border: 1px solid #373842;
  border-radius: 14px;
  background: #1a1b22;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.points-shop-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.ps-panel {
  color: #fff;
  padding: 0 20px 20px;
}

.ps-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 56px;
  margin: 0 -20px 16px;
  padding: 0 20px;
}

.ps-head h3 {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  font-weight: 650;
}

.ps-close {
  width: 32px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  cursor: pointer;
}

.ps-close:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.ps-user-row {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 10px;
  margin-bottom: 18px;
}

.ps-user-card,
.ps-balance-card {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 72px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.03);
}

.ps-avatar {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, #6b5cff 0%, #a78bfa 100%);
  color: #fff;
  font-size: 16px;
  font-weight: 700;
}

.ps-user-card strong {
  color: rgba(255, 255, 255, 0.92);
  font-size: 15px;
  font-weight: 650;
}

.ps-balance-card {
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
}

.ps-balance-card span {
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.ps-balance-card b {
  color: #f5c84c;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
}

.ps-balance-card p {
  margin: 0;
  color: rgba(255, 255, 255, 0.32);
  font-size: 11px;
}

.ps-section {
  margin-bottom: 16px;
}

.ps-section h4 {
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
  font-weight: 600;
}

.ps-tiers {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.ps-tiers button {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 72px;
  padding: 10px 6px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
}

.ps-tiers button strong {
  font-size: 14px;
  font-weight: 650;
}

.ps-tiers button span {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.ps-tiers button:hover {
  border-color: rgba(107, 92, 255, 0.45);
}

.ps-tiers button.is-active {
  border-color: #6b5cff;
  background: rgba(107, 92, 255, 0.12);
  box-shadow: inset 0 0 0 1px rgba(107, 92, 255, 0.35);
}

.ps-tiers button.is-active span {
  color: rgba(200, 190, 255, 0.85);
}

.ps-custom {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  background: rgba(0, 0, 0, 0.22);
}

.ps-custom.is-active {
  border-color: #6b5cff;
}

.ps-custom .ant-input {
  flex: 1;
  color: #fff !important;
  font-size: 14px;
  padding: 0 !important;
}

.ps-custom .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.ps-custom em {
  color: rgba(255, 255, 255, 0.45);
  font-style: normal;
  font-size: 14px;
  font-weight: 600;
}

.ps-tip {
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  background: rgba(88, 120, 255, 0.1);
  border: 1px solid rgba(88, 120, 255, 0.18);
}

.ps-tip strong {
  display: block;
  margin-bottom: 6px;
  color: #9db0ff;
  font-size: 12px;
  font-weight: 650;
}

.ps-tip p {
  margin: 0;
  color: rgba(210, 218, 255, 0.78);
  font-size: 12px;
  line-height: 1.6;
}

.ps-pay {
  width: 100%;
  height: 44px;
  border: 0;
  border-radius: 10px;
  background: linear-gradient(90deg, #6b5cff 0%, #8b5cff 100%);
  color: #fff;
  font-size: 14px;
  font-weight: 650;
  cursor: pointer;
}

.ps-pay:hover:not(:disabled) {
  filter: brightness(1.06);
}

.ps-pay:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 640px) {
  .ps-user-row,
  .ps-tiers {
    grid-template-columns: 1fr 1fr;
  }
}

/* ---------- 下单后的支付确认步骤 ---------- */
.ps-order {
  display: grid;
  gap: 10px;
  padding: 14px;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.04);
}

.ps-order > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 13px;
  color: rgba(255, 255, 255, 0.6);
}

.ps-order strong {
  color: #fff;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.ps-order strong.is-paid {
  color: #3ee58b;
}

.ps-pay-link {
  display: block;
  margin-top: 10px;
  text-align: center;
  font-size: 13px;
  color: #9b8cff;
  text-decoration: underline;
}

.ps-order-tip {
  margin: 10px 0 0;
  font-size: 12px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.45);
}

.ps-order-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 14px;
}

.ps-order-actions .ps-pay {
  margin-top: 0;
}

.ps-cancel {
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background: transparent;
  color: rgba(255, 255, 255, 0.75);
  font-size: 14px;
  cursor: pointer;
}

.ps-cancel:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.ps-order-expire {
  margin: 6px 0 0;
  font-size: 12px;
  color: #f5c542;
}

.ps-relink {
  display: block;
  width: 100%;
  margin-top: 10px;
  border: 0;
  background: transparent;
  color: rgba(255, 255, 255, 0.5);
  font-size: 12px;
  text-align: center;
  text-decoration: underline;
  cursor: pointer;
}

.ps-relink:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}.withdraw-confirm-modal.ant-modal .ant-modal-content {
  padding: 0;
  border: 1px solid #373842;
  border-radius: 14px;
  background: #1a1b22;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.withdraw-confirm-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.wd-panel {
  color: #fff;
}

.wd-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 56px;
  padding: 0 20px;
}

.wd-head h3 {
  margin: 0;
  color: rgba(255, 255, 255, 0.92);
  font-size: 16px;
  font-weight: 650;
}

.wd-close {
  width: 32px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  font-size: 12px;
  cursor: pointer;
}

.wd-close:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.wd-desc {
  margin: 0 20px 16px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}

.wd-amount {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin: 0 20px 18px;
  padding: 22px 16px;
  border-radius: 12px;
  background: #121318;
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.wd-amount strong {
  color: #f5c84c;
  font-size: 34px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: 0.02em;
}

.wd-amount span {
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}

.wd-rows {
  margin: 0 20px 16px;
}

.wd-rows > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 34px;
}

.wd-rows dt {
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.wd-rows dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.88);
  font-size: 13px;
  font-weight: 500;
}

.wd-account-block {
  margin: 0 20px 14px;
}

.wd-account-block > span {
  display: block;
  margin-bottom: 8px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.wd-account-card {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 56px;
  padding: 10px 12px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.03);
}

.wd-alipay {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  border-radius: 8px;
  background: #1677ff;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.wd-account-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1;
}

.wd-account-meta strong {
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 600;
}

.wd-account-meta em {
  color: rgba(255, 255, 255, 0.4);
  font-style: normal;
  font-size: 12px;
}

.wd-verified {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(62, 229, 139, 0.35);
  background: rgba(62, 229, 139, 0.12);
  color: #3ee58b;
  font-size: 11px;
  font-weight: 500;
}

.wd-notice {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0 20px 18px;
  padding: 12px;
  border-radius: 10px;
  background: rgba(88, 120, 255, 0.12);
  border: 1px solid rgba(88, 120, 255, 0.18);
}

.wd-notice .anticon {
  margin-top: 2px;
  color: #7b8cff;
  font-size: 14px;
}

.wd-notice p {
  margin: 0;
  color: rgba(210, 218, 255, 0.85);
  font-size: 12px;
  line-height: 1.55;
}

.wd-foot {
  display: flex;
  gap: 10px;
  padding: 0 20px 20px;
}

.wd-cancel,
.wd-ok {
  height: 42px;
  border: 0;
  border-radius: 10px;
  font-size: 14px;
  cursor: pointer;
}

.wd-cancel {
  flex: 0 0 108px;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.78);
}

.wd-cancel:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
}

.wd-ok {
  flex: 1;
  background: linear-gradient(90deg, #6b5cff 0%, #8b5cff 100%);
  color: #fff;
  font-weight: 650;
}

.wd-ok:hover {
  filter: brightness(1.06);
}
.studio-body.is-points {
  padding: 0;
  overflow: auto;
  background: #0d0d0d;
}

.studio-main:has(.studio-body.is-points) {
  background: #0d0d0d;
}

.pc-page {
  color: #fff;
}

.pc-page .page-back-bar {
  padding-right: 32px;
  padding-left: 40px;
}

.pc-page .page-back-bar-title h1 {
  font-size: 16px;
  font-weight: 650;
  color: rgba(255, 255, 255, 0.92);
}

.pc-desc {
  margin: 0;
  padding: 14px 32px 16px 40px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.pc-content {
  padding: 0 32px 32px 40px;
}

.pc-head-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.pc-btn-ghost {
  height: 36px;
  padding: 0 16px;
  border: 1px solid #373842;
  border-radius: 9px;
  background: transparent;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
}

.pc-btn-ghost:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
}

.pc-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 36px;
  padding: 0 16px;
  border: 0;
  border-radius: 9px;
  background: linear-gradient(148deg, #ff6b5e 0%, #ff2dc2 50.48%);
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.pc-btn-primary:hover {
  opacity: 0.94;
}

.pc-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 16px;
}

.pc-stat-card {
  min-height: 112px;
  padding: 16px 18px;
  border: 1px solid #373842;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.04) 100%);
}

.pc-stat-card span {
  display: block;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
  font-weight: 500;
}

.pc-stat-card b {
  display: block;
  margin-top: 10px;
  font-size: 28px;
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
}

.pc-stat-card b.is-white {
  color: #fff;
}

.pc-stat-card b.is-green {
  color: #3ee58b;
}

.pc-stat-card b.is-orange {
  color: #ffb347;
}

.pc-stat-card b.is-pink {
  color: #ff2dc2;
}

.pc-stat-card p {
  margin: 8px 0 0;
  color: rgba(255, 255, 255, 0.32);
  font-size: 12px;
}

.pc-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 14px;
  align-items: start;
}

.pc-records,
.pc-withdraw,
.pc-rules {
  border: 1px solid #373842;
  border-radius: 9px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.04) 100%);
}

.pc-records {
  min-height: 520px;
  padding: 6px 0 8px;
  overflow: hidden;
}

.pc-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 10px 16px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.pc-tabs button {
  position: relative;
  height: 40px;
  padding: 0 14px;
  border: 0;
  background: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}

.pc-tabs button:hover {
  color: rgba(255, 255, 255, 0.75);
}

.pc-tabs button.active {
  color: #ff2dc2;
  font-weight: 600;
}

.pc-tabs button.active::after {
  content: '';
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 0;
  height: 2px;
  border-radius: 2px;
  background: #ff2dc2;
}

.pc-table-wrap {
  overflow: auto;
  max-height: 460px;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
}

.pc-table {
  width: 100%;
  border-collapse: collapse;
}

.pc-table th,
.pc-table td {
  padding: 14px 18px;
  text-align: left;
  font-size: 13px;
  font-weight: 500;
}

.pc-table th {
  color: rgba(255, 255, 255, 0.38);
  font-weight: 500;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.pc-table td {
  color: rgba(255, 255, 255, 0.78);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.pc-table tr:last-child td {
  border-bottom: 0;
}

.pc-table td.is-plus {
  color: #3ee58b;
}

.pc-table td.is-minus {
  color: rgba(255, 255, 255, 0.88);
}

.pc-status {
  display: inline-flex;
  align-items: center;
  height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
}

.pc-status.is-green {
  color: #3ee58b;
  background: rgba(62, 229, 139, 0.12);
  border: 1px solid rgba(62, 229, 139, 0.35);
}

.pc-status.is-mint {
  color: #6fe8b0;
  background: rgba(62, 229, 139, 0.1);
  border: 1px solid rgba(62, 229, 139, 0.28);
}

.pc-status.is-orange {
  color: #ffb347;
  background: rgba(255, 179, 71, 0.12);
  border: 1px solid rgba(255, 179, 71, 0.35);
}

.pc-status.is-gray {
  color: rgba(255, 255, 255, 0.55);
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.18);
}

.pc-status.is-purple {
  color: #c084fc;
  background: rgba(192, 132, 252, 0.12);
  border: 1px solid rgba(192, 132, 252, 0.35);
}

.pc-side {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.pc-withdraw {
  padding: 18px 16px 16px;
}

.pc-withdraw-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.pc-withdraw-head h3 {
  margin: 0;
  font-size: 15px;
  font-weight: 650;
}

.pc-verified {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(62, 229, 139, 0.35);
  background: rgba(62, 229, 139, 0.12);
  color: #3ee58b;
  font-size: 11px;
  font-weight: 500;
}

.pc-field {
  display: block;
  margin-bottom: 12px;
}

.pc-field > span,
.pc-account > span {
  display: block;
  margin-bottom: 8px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
}

.pc-field-input {
  display: flex;
  align-items: center;
  gap: 8px;
  height: 44px;
  padding: 0 12px;
  border: 1px solid #373842;
  border-radius: 9px;
  background: rgba(0, 0, 0, 0.22);
}

.pc-field-input .ant-input {
  flex: 1;
  color: #fff !important;
  font-size: 16px;
  font-weight: 600;
  padding: 0 !important;
}

.pc-field-input em {
  color: rgba(255, 255, 255, 0.4);
  font-style: normal;
  font-size: 12px;
}

.pc-account {
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid #373842;
  border-radius: 9px;
  background: rgba(0, 0, 0, 0.18);
}

.pc-account p {
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 13px;
}

.pc-fee {
  margin: 0 0 16px;
}

.pc-fee > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.pc-fee dt {
  color: rgba(255, 255, 255, 0.4);
  font-size: 12px;
}

.pc-fee dd {
  margin: 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 13px;
  font-weight: 500;
}

.pc-withdraw-btn {
  width: 100%;
  height: 42px;
  border-radius: 999px;
}

.pc-rules {
  padding: 16px;
}

.pc-rules h4 {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 650;
}

.pc-rules ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.pc-rules li {
  position: relative;
  margin-bottom: 8px;
  padding-left: 12px;
  color: rgba(255, 255, 255, 0.42);
  font-size: 12px;
  line-height: 1.55;
}

.pc-rules li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.28);
}

.pc-rules li:last-child {
  margin-bottom: 0;
}

/* 积分与钻石管理规则入口 */
.pc-rule-link {
  margin-top: 12px;
  padding: 0;
  border: none;
  background: transparent;
  color: rgba(255, 105, 180, 0.85);
  font-size: 12px;
  cursor: pointer;
}

.pc-rule-link:hover {
  color: #ff67c3;
  text-decoration: underline;
}

@media (max-width: 1199px) {
  .pc-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pc-body {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .pc-page .page-back-bar {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pc-desc,
  .pc-content {
    padding-right: 16px;
    padding-left: 16px;
  }

  .pc-stats {
    grid-template-columns: 1fr;
  }
}

/* 流水为空时的占位行 */
.pc-table-empty {
  padding: 36px 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.45);
  font-size: 13px;
}

/* 提现收款账户只读展示 */
.pc-field-input.is-readonly {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.pc-field-input.is-readonly .ant-input,
.pc-field-input.is-readonly .ant-input[readonly] {
  color: rgba(255, 255, 255, 0.45);
  cursor: default;
}

.pc-field-input.is-readonly .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.3);
}

.pc-field-tip {
  margin: 4px 0 12px;
  color: rgba(255, 255, 255, 0.45);
  font-size: 12px;
  line-height: 1.6;
}

.pc-field-tip a {
  margin: 0 2px;
  color: #b39dff;
  text-decoration: underline;
}.works-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

.works-title img {
  width: 44px;
  height: 44px;
}

.works-title h1 {
  margin: 0;
  font-size: clamp(22px, 1.6vw, 28px);
  font-weight: 750;
  line-height: 1.2;
}

.works-search {
  display: flex;
  align-items: center;
  gap: 12px;
  width: min(100%, 420px);
  height: 40px;
  padding: 0 14px;
  margin-bottom: 24px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  transition: border-color 0.15s ease, background 0.15s ease;
}

.works-search:focus-within {
  border-color: rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
}

.works-search .anticon {
  color: rgba(255, 255, 255, 0.32);
  font-size: 14px;
}

.works-search .ant-input {
  color: #fff !important;
  font-size: 13px;
}

.works-search .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.works-search .ant-input-clear-icon {
  color: rgba(255, 255, 255, 0.35);
}

.works-empty {
  padding: 96px 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.38);
  font-size: 14px;
}

.script-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.script-card {
  min-width: 0;
  cursor: pointer;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.03);
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.script-card:hover {
  border-color: rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.045);
  transform: translateY(-2px);
}

.script-cover {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 10;
  border-radius: 12px;
  background: #101018;
}

.script-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  transition: transform 0.35s ease;
}

.script-card:hover .script-cover img {
  transform: scale(1.03);
}

.script-cover::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.06);
  pointer-events: none;
}

.script-grade {
  position: absolute;
  top: 0;
  left: 10px;
  z-index: 2;
  min-width: 34px;
  padding: 7px 8px 9px;
  border-radius: 0 0 8px 8px;
  color: #2a1400;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-align: center;
  line-height: 1;
  box-shadow:
    0 6px 14px rgba(255, 140, 20, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

.script-grade.is-sss,
.script-grade.is-ss {
  background: linear-gradient(180deg, #ffd27a 0%, #ff9a1f 55%, #f07800 100%);
}

.script-grade.is-s {
  background: linear-gradient(180deg, #ffc56e 0%, #ff7a18 100%);
}

.script-body {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 2px 2px;
}

.script-info {
  min-width: 0;
  flex: 1;
}

.script-info h3 {
  margin: 0;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.92);
  font-size: 14px;
  font-weight: 650;
  line-height: 1.4;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.script-info time {
  display: block;
  margin-top: 6px;
  color: rgba(255, 255, 255, 0.34);
  font-size: 12px;
}

.script-more {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  margin-top: -2px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.38);
  font-size: 16px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.script-more:hover,
.script-more[aria-expanded='true'] {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.script-menu {
  min-width: 172px;
  padding: 6px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 12px;
  background: rgba(22, 22, 28, 0.96);
  backdrop-filter: blur(12px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.5);
}

.script-menu button {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  height: 36px;
  padding: 0 10px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(255, 255, 255, 0.78);
  font-size: 13px;
  text-align: left;
  cursor: pointer;
}

.script-menu button .anticon {
  width: 14px;
  color: rgba(255, 255, 255, 0.4);
  font-size: 13px;
}

.script-menu button:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}

.script-menu button:hover .anticon {
  color: rgba(255, 255, 255, 0.7);
}

/* 条件不满足的菜单项（如没有评估报告时的「上架版权中心」） */
.script-menu button.is-disabled,
.script-menu button.is-disabled .anticon {
  color: rgba(255, 255, 255, 0.32);
}

.script-menu button.is-disabled:hover {
  background: transparent;
  color: rgba(255, 255, 255, 0.32);
}

.script-menu button.is-danger {
  color: rgba(255, 130, 130, 0.92);
}

.script-menu button.is-danger .anticon {
  color: rgba(255, 130, 130, 0.72);
}

.script-menu-split {
  height: 1px;
  margin: 5px 6px;
  background: rgba(255, 255, 255, 0.08);
}

.script-rename-modal.ant-modal .ant-modal-content {
  padding: 0;
  border: 1px solid #373842;
  border-radius: 16px;
  background: #1a1b22;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}

.script-rename-modal.ant-modal .ant-modal-body {
  padding: 0;
}

.sr-panel {
  color: #fff;
}

.sr-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  height: 56px;
  padding: 0 20px;
}

.sr-head h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 650;
}

.sr-close {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: rgba(255, 255, 255, 0.55);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.sr-close:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

.sr-body {
  padding: 4px 20px 18px;
}

.sr-body .ant-input,
.sr-body .ant-input-affix-wrapper {
  height: 44px;
  border: 1px solid #373842 !important;
  border-radius: 10px !important;
  background: rgba(0, 0, 0, 0.28) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.sr-body .ant-input-affix-wrapper:hover,
.sr-body .ant-input-affix-wrapper-focused,
.sr-body .ant-input:focus {
  border-color: transparent !important;
  box-shadow: none !important;
}

.sr-body .ant-input-affix-wrapper .ant-input {
  height: auto;
  background: transparent !important;
  border: 0 !important;
}

.sr-body .ant-input::placeholder {
  color: rgba(255, 255, 255, 0.28);
}

.sr-body .ant-input-clear-icon {
  color: rgba(255, 255, 255, 0.4);
}

.sr-foot {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 0 20px 20px;
}

.sr-btn {
  height: 36px;
  min-width: 88px;
  padding: 0 20px;
  border: 0;
  border-radius: 999px;
  background: #fff;
  color: #111;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.15s ease;
}

.sr-btn:hover {
  opacity: 0.9;
}

.sr-btn.is-ghost {
  border: 1px solid #373842;
  background: transparent;
  color: rgba(255, 255, 255, 0.82);
}

.sr-btn.is-ghost:hover {
  border-color: rgba(255, 255, 255, 0.28);
  color: #fff;
  opacity: 1;
}

@media (max-width: 1439px) {
  .script-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1199px) {
  .script-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .works-search {
    width: 100%;
  }
}

@media (min-width: 1920px) {
  .works-title img {
    width: 52px;
    height: 52px;
  }

  .script-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
}

/* 没有封面时不显示假图，只给占位块 */
.script-cover-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: 150px;
  color: rgba(255, 255, 255, 0.32);
  font-size: 12px;
}:root {
  --font-size: 14px;
  --page-padding: 16px;
  --content-max: 1600px;
  --header-height: 56px;
  --sider-bg: #0f172a;
  --page-bg: #f4f6fb;
  --card-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

@media (min-width: 1280px) {
  :root {
    --page-padding: 20px;
  }
}

@media (min-width: 1440px) {
  :root {
    --font-size: 14px;
    --page-padding: 24px;
  }
}

@media (min-width: 1680px) {
  :root {
    --font-size: 15px;
    --page-padding: 28px;
  }
}

@media (min-width: 1920px) {
  :root {
    --font-size: 16px;
    --page-padding: 32px;
    --content-max: 1760px;
  }
}

* {
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
}

*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

*::-webkit-scrollbar-track {
  background: transparent;
}

*::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background-clip: padding-box;
  background-color: rgba(255, 255, 255, 0.18);
}

*::-webkit-scrollbar-thumb:hover {
  background-color: rgba(255, 255, 255, 0.34);
}

*::-webkit-scrollbar-corner {
  background: transparent;
}

html,
body,
#root {
  min-height: 100%;
}

html {
  font-size: var(--font-size);
}

body {
  margin: 0;
  background: #0b0b0f;
  font-family:
    'Segoe UI',
    'PingFang SC',
    'Microsoft YaHei',
    system-ui,
    sans-serif;
  color: #f3f3f6;
}

.page-shell {
  max-width: var(--content-max);
  margin: 0 auto;
}

.page-card {
  height: 100%;
}

.stat-card {
  position: relative;
  overflow: hidden;
}

.stat-card::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: var(--stat-accent, #1677ff);
}

.viewport-chip {
  font-variant-numeric: tabular-nums;
}

.ant-input:focus,
.ant-input:focus-within,
.ant-input-focused,
.ant-input-outlined:focus,
.ant-input-outlined:focus-within,
.ant-input-outlined-focused,
.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper:focus-within,
.ant-input-affix-wrapper-focused,
.ant-input-textarea-focused,
.ant-input-textarea:focus-within,
.ant-input-status-error.ant-input-focused,
.ant-input-status-error:focus,
textarea.ant-input:focus {
  border-color: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}
