/*!
 * 童澄未来 OPEN · P0 theme override (additive, no rebuild)
 * Tokens from claude-ui-design.md — warm white + orange
 * Linked late from index.html with ?v=p0-20260927
 */
:root {
  --color-bg-base: #fffaf3;
  --color-bg-surface: #ffffff;
  --color-bg-subtle: #fff3e9;
  --color-primary: #ff7814;
  --color-primary-hover: #ff7710;
  --color-primary-subtle: #ffe4cc;
  --color-text-primary: #2b2b2b;
  --color-text-secondary: #6b6b6b;
  --color-text-placeholder: #b3b3b3;
  --color-border: #eee0d3;
  --color-border-focus: #ff7814;
  --color-link: #ff7814;
  --color-danger: #e5533d;
  --radius-card: 16px;
  --radius-btn: 8px;
  --radius-input: 6px;
  --shadow-card: 0 4px 12px rgba(0, 0, 0, 0.06);
  --shadow-card-hover: 0 8px 20px rgba(255, 120, 20, 0.12);
}

/* ---- Global surface ---- */
html,
body,
#app {
  background-color: var(--color-bg-base) !important;
  color: var(--color-text-primary);
}

/* Ant Design primary → orange (login + public chrome) */
a {
  color: var(--color-link) !important;
}
a:hover {
  color: var(--color-primary-hover) !important;
}

.ant-btn-primary {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
  border-radius: var(--radius-btn) !important;
  text-shadow: none !important;
  box-shadow: none !important;
}
.ant-btn-primary:hover,
.ant-btn-primary:focus,
.ant-btn-primary:active,
.ant-btn-primary.active {
  background-color: var(--color-primary-hover) !important;
  border-color: var(--color-primary-hover) !important;
  color: #fff !important;
}
.ant-btn {
  border-radius: var(--radius-btn) !important;
}

/* Checkbox (自动登陆) — kill default blue */
.ant-checkbox-checked .ant-checkbox-inner,
.ant-checkbox-indeterminate .ant-checkbox-inner {
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}
.ant-checkbox-wrapper:hover .ant-checkbox-inner,
.ant-checkbox:hover .ant-checkbox-inner,
.ant-checkbox-input:focus + .ant-checkbox-inner {
  border-color: var(--color-primary) !important;
}
.ant-checkbox-checked::after {
  border-color: var(--color-primary) !important;
}
.ant-checkbox-checked .ant-checkbox-inner::after {
  border-color: #fff !important;
}

/* Tabs underline (账号密码登录) */
.ant-tabs-ink-bar,
.ant-tabs-ink-bar-animated {
  background-color: var(--color-primary) !important;
  visibility: visible !important;
}
.ant-tabs-nav .ant-tabs-tab-active {
  color: var(--color-primary) !important;
}
.ant-tabs-nav .ant-tabs-tab:hover {
  color: var(--color-primary-hover) !important;
}

/* Inputs focus/hover — kill #40a9ff */
.ant-input:hover,
.ant-input:focus,
.ant-input-affix-wrapper:hover,
.ant-input-affix-wrapper:focus,
.ant-input-affix-wrapper-focused,
.ant-input-affix-wrapper:hover .ant-input:not(.ant-input-disabled),
.ant-select-auto-complete.ant-select .ant-input:hover,
.ant-select-auto-complete.ant-select .ant-input:focus,
.ant-input-number:hover,
.ant-input-number:focus,
.ant-input-number-focused,
.ant-select-selection:hover,
.ant-select-focused .ant-select-selection,
.ant-select-selection:focus,
.ant-select-selection:active {
  border-color: var(--color-border-focus) !important;
  box-shadow: 0 0 0 2px rgba(255, 120, 20, 0.15) !important;
}
.ant-input,
.ant-input-affix-wrapper,
.ant-input-number,
.ant-select-selection {
  border-radius: var(--radius-input) !important;
  border-color: var(--color-border) !important;
}
.ant-input::placeholder,
.ant-input::-webkit-input-placeholder {
  color: var(--color-text-placeholder) !important;
}

/* Login links: 注册账户 / 忘记密码 */
.user-layout-login a,
.user-layout-login .forge-password,
.user-layout-login .ant-form a,
#userLayout a.forge-password,
#userLayout .forge-password,
#userLayout .main a {
  color: var(--color-link) !important;
}
#userLayout .main a:hover,
.user-layout-login a:hover,
.user-layout-login .forge-password:hover {
  color: var(--color-primary-hover) !important;
}

/* Login page warm background */
#userLayout.user-layout-wrapper .container {
  background-color: var(--color-bg-base) !important;
  background-image: none !important;
}
#userLayout.user-layout-wrapper .container .top .header .title {
  color: var(--color-text-primary) !important;
}
#userLayout.user-layout-wrapper .container .top .desc {
  color: var(--color-text-secondary) !important;
}
#userLayout.user-layout-wrapper .container .main {
  background: var(--color-bg-surface);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow-card);
  padding: 24px 24px 8px;
  border: 1px solid var(--color-border);
}
.user-layout-login button.login-button {
  border-radius: var(--radius-btn) !important;
  background-color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}

/* Radio (if any on login) */
.ant-radio-checked .ant-radio-inner {
  border-color: var(--color-primary) !important;
}
.ant-radio-inner::after {
  background-color: var(--color-primary) !important;
}
.ant-radio-wrapper:hover .ant-radio .ant-radio-inner,
.ant-radio:hover .ant-radio-inner,
.ant-radio-input:focus + .ant-radio-inner {
  border-color: var(--color-primary) !important;
}

/* ---- Top nav: current / hover → orange ---- */
.ant-menu-item-selected > a,
.ant-menu-item-selected > a:hover,
.ant-menu-horizontal > .ant-menu-item-selected > a,
.ant-menu-horizontal > .ant-menu-item:hover > a,
.ant-menu-horizontal > .ant-menu-submenu-selected > a,
.ant-menu.ant-menu-root > .ant-menu-item:first-child.ant-menu-item-selected > a,
.ant-menu.ant-menu-root > .ant-menu-item:first-child.ant-menu-item-selected > a:hover {
  color: var(--color-primary) !important;
}
.ant-menu-horizontal > .ant-menu-item-selected,
.ant-menu-horizontal > .ant-menu-submenu-selected {
  border-bottom: 2px solid var(--color-primary) !important;
  color: var(--color-primary) !important;
}
.ant-menu-horizontal > .ant-menu-item:hover,
.ant-menu-horizontal > .ant-menu-submenu:hover,
.ant-menu-horizontal > .ant-menu-submenu-open,
.ant-menu-horizontal > .ant-menu-submenu-active {
  border-bottom: 2px solid var(--color-primary) !important;
  color: var(--color-primary) !important;
}
.ant-menu-item > a,
.ant-menu-submenu-title {
  color: var(--color-text-secondary) !important;
}
.ant-menu-item > a:hover,
.ant-menu-submenu-title:hover {
  color: var(--color-primary) !important;
}

/* Top header chrome: warm white (light theme already white; tint accents) */
.layout .top-nav-header-index.light,
.layout .header.dark {
  background-color: var(--color-bg-surface) !important;
  box-shadow: 0 1px 0 var(--color-border) !important;
}
.layout .header:not(.dark) {
  background-color: var(--color-primary) !important;
}
.layout .header .user-wrapper .action .avatar,
.layout .top-nav-header-index .user-wrapper .action .avatar {
  color: var(--color-primary) !important;
}
.sider.light .logo {
  background-color: var(--color-primary) !important;
}

/* ---- Hero creation cards ---- */
.editor-card {
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  background: linear-gradient(-30deg, #ff9a4a, #ff7814) !important;
  border: 1px solid var(--color-border);
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.editor-card:hover {
  box-shadow: var(--shadow-card-hover) !important;
  transform: translateY(-2px);
}
.editor-card .ant-btn {
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--color-primary) !important;
  border-color: #fff !important;
}
.editor-card .ant-btn:hover {
  background: var(--color-primary-subtle) !important;
  color: var(--color-primary-hover) !important;
  border-color: var(--color-primary-subtle) !important;
}
/* Inline gradient styles on editor-sc / editor-py variants */
.editor-card.editor-sc,
.editor-card.editor-py,
div.editor-card[style*="linear-gradient"] {
  background: linear-gradient(-30deg, #ff9a4a, #ff7814) !important;
}

/* ---- Featured works cards ---- */
.work-card,
.work-card[class*="work-card"],
.panel-works .work-card,
.panel-works .ant-card {
  border-radius: var(--radius-card) !important;
  box-shadow: var(--shadow-card) !important;
  border: 1px solid var(--color-border) !important;
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.work-card:hover,
.panel-works .ant-card:hover {
  box-shadow: var(--shadow-card-hover) !important;
}
.work-card .ant-card-body {
  border-radius: var(--radius-card) !important;
}
.panel-title {
  color: var(--color-text-primary) !important;
}
[class*="title"]:hover {
  /* soften leftover #1890ff hovers on home titles */
}
.panel-works .title:hover,
[data-v-264b6629] .title:hover,
.work-card .work-op a:hover {
  color: var(--color-primary) !important;
}

/* Home page container — warm base (bg image already swapped to warm) */
.container[data-v-f94d9a74],
.container[data-v-23d211f3] {
  background-color: var(--color-bg-base) !important;
}

/* Login floating card on home (if present) */
.ant-layout-sider[data-v-f94d9a74] > div,
.login-card,
div[style*="border-radius:20px"] {
  /* keep structure; unify radius/shadow where classed */
}

/* Ant primary outline / ghost remnants */
.ant-btn-primary.ant-btn-background-ghost {
  color: var(--color-primary) !important;
  border-color: var(--color-primary) !important;
}
.ant-switch-checked {
  background-color: var(--color-primary) !important;
}
.ant-pagination-item-active {
  border-color: var(--color-primary) !important;
}
.ant-pagination-item-active a {
  color: var(--color-primary) !important;
}
.ant-spin-dot-item {
  background-color: var(--color-primary) !important;
}

/* Danger / validation stay red-orange brand */
.has-error .ant-input,
.has-error .ant-input:hover,
.has-error .ant-input:focus,
.ant-form-item-has-error .ant-input,
.ant-form-item-has-error .ant-input:hover,
.ant-form-item-has-error .ant-input:focus {
  border-color: var(--color-danger) !important;
  box-shadow: 0 0 0 2px rgba(229, 83, 61, 0.12) !important;
}

/* Disabled / 待开放 helper (used only if JS marks dead links) */
.tc-pending-open,
a.tc-pending-open,
button.tc-pending-open {
  pointer-events: none !important;
  opacity: 0.55 !important;
  cursor: not-allowed !important;
  filter: grayscale(0.2);
  position: relative;
}
.tc-pending-open::after {
  content: "待开放";
  display: inline-block;
  margin-left: 6px;
  font-size: 12px;
  color: var(--color-text-secondary);
  font-weight: 500;
}

/* Loader cubes on splash — retint blue → orange */
.loader .box > div {
  background: #ff9a4a !important;
}
.loader .box > div:nth-child(2) {
  background: #ff7814 !important;
}
.loader .box > div:nth-child(3) {
  background: #ff7710 !important;
}
.loader .box > div:nth-child(4) {
  background: #ffe4cc !important;
}

/* P0 hotfix 20260927b: readable top navigation and orange auth accents */
.ant-menu-horizontal > .ant-menu-item,
.ant-menu-horizontal > .ant-menu-submenu,
.ant-menu-horizontal > .ant-menu-item > a,
.ant-menu-horizontal > .ant-menu-submenu > .ant-menu-submenu-title,
.ant-menu-horizontal > .ant-menu-submenu > .ant-menu-submenu-title > a {
  color: #2b2b2b !important;
}
.ant-menu-horizontal > .ant-menu-item-selected,
.ant-menu-horizontal > .ant-menu-item:hover,
.ant-menu-horizontal > .ant-menu-submenu-selected,
.ant-menu-horizontal > .ant-menu-submenu:hover,
.ant-menu-horizontal > .ant-menu-submenu-open,
.ant-menu-horizontal > .ant-menu-submenu-active,
.ant-menu-horizontal > .ant-menu-item-selected > a,
.ant-menu-horizontal > .ant-menu-item:hover > a,
.ant-menu-horizontal > .ant-menu-submenu-selected > .ant-menu-submenu-title,
.ant-menu-horizontal > .ant-menu-submenu:hover > .ant-menu-submenu-title,
.ant-menu-horizontal > .ant-menu-submenu-open > .ant-menu-submenu-title,
.ant-menu-horizontal > .ant-menu-submenu-active > .ant-menu-submenu-title,
.ant-menu-horizontal > .ant-menu-submenu-selected > .ant-menu-submenu-title > a,
.ant-menu-horizontal > .ant-menu-submenu:hover > .ant-menu-submenu-title > a {
  color: #ff7814 !important;
}
.ant-menu-horizontal > .ant-menu-item-selected,
.ant-menu-horizontal > .ant-menu-item:hover,
.ant-menu-horizontal > .ant-menu-submenu-selected,
.ant-menu-horizontal > .ant-menu-submenu:hover,
.ant-menu-horizontal > .ant-menu-submenu-open,
.ant-menu-horizontal > .ant-menu-submenu-active {
  border-bottom-color: #ff7814 !important;
}
.ant-tabs-ink-bar,
.ant-tabs-ink-bar-animated {
  background-color: #ff7814 !important;
}
.ant-tabs-nav .ant-tabs-tab-active,
.ant-tabs-nav .ant-tabs-tab-active .ant-tabs-tab-btn,
.ant-tabs-nav .ant-tabs-tab:hover {
  color: #ff7814 !important;
}
.ant-checkbox-checked .ant-checkbox-inner {
  background-color: #ff7814 !important;
  border-color: #ff7814 !important;
}
