/* 金创空间用户侧视觉层。运营支撑和数据驾驶舱不带 is-jc-public，保持原样。 */
.is-jc-public {
  --jc-pine-900: #143a33;
  --jc-pine-700: #1f5a4e;
  --jc-teal-500: #2e8b7e;
  --jc-gold-400: #c2a878;
  --jc-gold-100: #f5ecda;
  --jc-paper: #f7f4ee;
  --jc-surface: #fffefc;
  --jc-ink: #1c2421;
  --jc-muted: #5e6b66;
  --jc-line: #e3ded3;
  --jc-shadow: 0 14px 34px rgba(20, 58, 51, 0.075);
  color: var(--jc-ink);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) {
  background:
    radial-gradient(circle at 94% 4%, rgba(194, 168, 120, 0.1), transparent 28rem),
    var(--jc-paper);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-header {
  border-bottom: 1px solid rgba(194, 168, 120, 0.28);
  background: var(--jc-pine-900);
  box-shadow: 0 8px 24px rgba(20, 58, 51, 0.1);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-header::after,
.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-main::before {
  display: none;
}

.opc-extension-page.is-jc-public .opc-extension-header-inner,
.opc-extension-page.is-jc-public .opc-extension-main {
  max-width: 1328px;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-main {
  min-height: calc(100vh - 64px);
  padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1rem, 2.5vw, 1.5rem) 5rem;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-tab {
  color: rgba(255, 254, 252, 0.78);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-tab:hover,
.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-tab.is-active {
  color: #fffefc;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-tab.is-active::after {
  background: var(--jc-gold-400);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .user-menu-trigger {
  border-color: rgba(255, 254, 252, 0.25);
  color: #fffefc;
  background: rgba(255, 254, 252, 0.09);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .auth-user-name {
  color: #fffefc;
}

.opc-extension-page.is-jc-public .user-avatar {
  background: linear-gradient(135deg, var(--jc-pine-700), var(--jc-teal-500));
}

.opc-extension-page.is-jc-public :is(a, button, input, textarea, select):focus-visible,
.auth-home.is-jc-public :is(a, button, input, textarea, select):focus-visible {
  outline: 2px solid var(--jc-teal-500);
  outline-offset: 3px;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.opc-extension-title, .apply-hero, .project-submit-hero.title-only, .community-title-bar.compact, .event-page-heading) {
  margin-bottom: 1.35rem;
  padding: clamp(1.15rem, 2.2vw, 1.65rem) clamp(1.2rem, 2.5vw, 2rem);
  border: 1px solid var(--jc-line);
  border-radius: 18px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.opc-extension-title h1, .apply-hero h1, .project-submit-hero h1, .community-title-bar h1, .event-page-heading h1) {
  margin: 0;
  color: var(--jc-ink);
  font-size: clamp(1.5rem, 2.25vw, 2rem);
  font-weight: 750;
  letter-spacing: -0.025em;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.operations-empty, .loading-panel, .opc-module-hero, .apply-card, .expert-application-status, .profile-workbench-content, .event-list-card, .event-detail-content, .event-detail-sidebar > section, .star-company-card) {
  border: 1px solid var(--jc-line);
  border-radius: 16px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.operations-empty, .loading-panel) {
  color: var(--jc-muted);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.operations-empty h3, .opc-module-hero h2, .apply-card h2) {
  color: var(--jc-ink);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.lovable-primary, .community-publish-button, .bounty-publish-button, .event-registration-form > button) {
  border: 1px solid var(--jc-pine-900);
  border-radius: 10px;
  color: #fffefc;
  background: var(--jc-pine-900);
  box-shadow: 0 8px 20px rgba(20, 58, 51, 0.14);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.lovable-primary, .community-publish-button, .bounty-publish-button, .event-registration-form > button):hover {
  background: var(--jc-pine-700);
  border-color: var(--jc-pine-700);
}

.opc-extension-page.is-jc-public:not(.is-opc-home) :is(.auth-secondary-button, .policy-library-page-header a, .event-filter-tabs a) {
  border-color: var(--jc-line);
  border-radius: 10px;
  color: var(--jc-pine-700);
  background: var(--jc-surface);
  box-shadow: none;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-main :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select) {
  border-color: #d8d5cb;
  border-radius: 10px;
  color: var(--jc-ink);
  background: #fffefc;
}

.opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-main :is(input:not([type="checkbox"]):not([type="radio"]), textarea, select):focus {
  border-color: var(--jc-teal-500);
  box-shadow: 0 0 0 3px rgba(46, 139, 126, 0.12);
}

/* 广场通用组件：保留分类、搜索、收藏和链接逻辑，仅统一形态。 */
.opc-extension-page.is-jc-public .opc-module-hero {
  min-height: 88px;
  margin: 0 0 1.25rem;
  padding: 1.3rem 1.65rem;
  background: linear-gradient(108deg, var(--jc-surface), #f4eee1);
}

.opc-extension-page.is-jc-public .module-search-panel {
  gap: 0.8rem;
  margin-bottom: 1.25rem;
  padding: 1.1rem 1.25rem;
  border: 1px solid var(--jc-line);
  border-radius: 16px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public .module-search-form label {
  min-height: 50px;
  border-color: var(--jc-line);
  border-radius: 11px;
  background: #faf9f5;
  box-shadow: none;
}

.opc-extension-page.is-jc-public .module-search-form label:focus-within {
  border-color: var(--jc-teal-500);
  box-shadow: 0 0 0 3px rgba(46, 139, 126, 0.12);
}

.opc-extension-page.is-jc-public .module-search-tags > span,
.opc-extension-page.is-jc-public .module-search-form small {
  color: var(--jc-muted);
}

.opc-extension-page.is-jc-public .module-search-tags button {
  color: var(--jc-pine-700);
}

.opc-extension-page.is-jc-public .module-search-tags button:hover,
.opc-extension-page.is-jc-public .module-search-tags button.is-active {
  color: var(--jc-pine-900);
  border-bottom-color: var(--jc-gold-400) !important;
}

.opc-extension-page.is-jc-public .tool-category-tabs a,
.opc-extension-page.is-jc-public .bounty-tabs a {
  border: 1px solid var(--jc-line);
  border-radius: 10px;
  color: var(--jc-muted);
  background: var(--jc-surface);
}

.opc-extension-page.is-jc-public .tool-category-tabs a.is-active,
.opc-extension-page.is-jc-public .bounty-tabs a.is-active {
  border-color: var(--jc-pine-900);
  color: #fffefc;
  background: var(--jc-pine-900);
  box-shadow: 0 10px 22px rgba(20, 58, 51, 0.12);
}

.opc-extension-page.is-jc-public .tool-category-tabs a.is-active span,
.opc-extension-page.is-jc-public .bounty-tabs a.is-active span {
  color: rgba(255, 254, 252, 0.78);
}

.opc-extension-page.is-jc-public :is(.tool-card, .skill-card, .bounty-card, .community-post-card, .community-composer, .community-side-panel article) {
  border: 1px solid var(--jc-line);
  border-radius: 15px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public :is(.tool-card, .skill-card, .bounty-card, .community-post-card):hover {
  border-color: var(--jc-gold-400);
  box-shadow: 0 18px 32px rgba(20, 58, 51, 0.11);
}

.opc-extension-page.is-jc-public .tool-logo {
  border-color: #ded8c9;
  border-radius: 12px;
  color: var(--jc-pine-700);
  background: var(--jc-gold-100);
}

.opc-extension-page.is-jc-public :is(.tool-meta, .tool-card em, .skill-card-labels b) {
  color: var(--jc-pine-700);
}

.opc-extension-page.is-jc-public :is(.tool-card strong, .bounty-card h3, .community-post-card h3) {
  color: var(--jc-ink);
}

.opc-extension-page.is-jc-public :is(.tool-card p, .bounty-card > p, .community-post-card p) {
  color: var(--jc-muted);
}

.opc-extension-page.is-jc-public .tool-favorite.is-active {
  color: #8d6b2b;
  background: var(--jc-gold-100);
}

/* 政策助手：减少无数据时的大块留白，与首页使用同一暖色系统。 */
.opc-extension-page.is-jc-public .policy-chatbot-workspace {
  min-height: 0;
  grid-template-rows: auto auto auto;
  gap: 1.15rem;
  max-width: 1328px;
}

.opc-extension-page.is-jc-public .policy-overview-card.policy-library-entry {
  min-height: 104px;
  padding: 1.3rem 1.7rem;
  border: 1px solid rgba(194, 168, 120, 0.55);
  border-radius: 17px;
  color: var(--jc-pine-900);
  background: linear-gradient(105deg, #fffefc 0%, #f3ead8 100%);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public .policy-overview-card.policy-library-entry::after {
  content: "↗";
  display: grid;
  width: 38px;
  height: 38px;
  place-items: center;
  border: 1px solid rgba(194, 168, 120, 0.55);
  border-radius: 10px;
  color: var(--jc-pine-700);
  background: rgba(255, 254, 252, 0.7);
  font-size: 1.25rem;
}

.opc-extension-page.is-jc-public .policy-overview-card h2 {
  color: var(--jc-pine-900);
  font-size: clamp(1.35rem, 2vw, 1.65rem);
}

.opc-extension-page.is-jc-public .policy-chatbot-shell {
  min-height: 320px;
  max-height: min(72vh, 720px);
  border: 1px solid var(--jc-line);
  border-radius: 18px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public .policy-chatbot-shell:has(.policy-chat-form) {
  min-height: 460px;
}

.opc-extension-page.is-jc-public .policy-chatbot-head {
  min-height: 78px;
  padding: 1rem 1.4rem;
  border-bottom-color: var(--jc-line);
}

.opc-extension-page.is-jc-public .policy-chatbot-head strong {
  color: var(--jc-ink);
  font-size: 1.05rem;
}

.opc-extension-page.is-jc-public :is(.policy-bot-avatar, .policy-chat-avatar) {
  color: #fffefc;
  background: linear-gradient(135deg, var(--jc-pine-900), var(--jc-teal-500));
}

.opc-extension-page.is-jc-public .policy-chatbot-thread {
  min-height: 220px;
  padding: 1.4rem;
  background: linear-gradient(180deg, #f8f6f0 0%, #fffefc 100%);
}

.opc-extension-page.is-jc-public .policy-chat-bubble {
  border-color: var(--jc-line);
  border-radius: 13px;
  box-shadow: 0 8px 20px rgba(20, 58, 51, 0.05);
}

.opc-extension-page.is-jc-public .policy-chat-message.user .policy-chat-bubble {
  border-color: #cbded6;
  background: #eaf3ee;
}

.opc-extension-page.is-jc-public .policy-chat-bubble p {
  color: var(--jc-ink);
}

.opc-extension-page.is-jc-public .policy-chat-form {
  border-top: 1px solid var(--jc-line);
  background: #fbf9f4;
}

.opc-extension-page.is-jc-public .policy-chat-form textarea {
  border-color: var(--jc-line);
  color: var(--jc-ink);
  background: var(--jc-surface);
}

.opc-extension-page.is-jc-public .policy-chat-form .policy-upload-icon-button {
  border-color: var(--jc-line);
  color: var(--jc-pine-700);
  background: #f6f3eb;
}

.opc-extension-page.is-jc-public .policy-chat-form > button {
  border-radius: 9px;
  color: #fffefc;
  background: var(--jc-pine-900);
}

.opc-extension-page.is-jc-public .policy-chat-form > button:disabled {
  color: #77796f;
  background: #e5e2da;
  opacity: 1;
  cursor: not-allowed;
}

.opc-extension-page.is-jc-public .policy-chat-locked textarea {
  padding-left: 0.85rem;
  cursor: not-allowed;
}

.opc-extension-page.is-jc-public .policy-chat-locked textarea::placeholder {
  color: #697a73;
  opacity: 1;
}

.opc-extension-page.is-jc-public :is(.policy-chatbot-head button, .policy-chat-actions button, .policy-chat-actions a, .policy-modal-card button) {
  border-color: var(--jc-line);
  border-radius: 9px;
  color: var(--jc-pine-700);
  background: var(--jc-surface);
}

.opc-extension-page.is-jc-public .policy-chat-actions button:first-child {
  border-color: var(--jc-pine-900);
  color: #fffefc;
  background: var(--jc-pine-900);
}

.opc-extension-page.is-jc-public .policy-service-banner {
  border-color: rgba(194, 168, 120, 0.55);
  border-radius: 16px;
  background: linear-gradient(110deg, var(--jc-pine-900), var(--jc-pine-700));
}

.opc-extension-page.is-jc-public .policy-service-banner h2 {
  color: #fffefc;
}

.opc-extension-page.is-jc-public .policy-service-banner p {
  color: rgba(255, 254, 252, 0.78);
}

.opc-extension-page.is-jc-public :is(.policy-library-page-header, .policy-library-page-grid, .policy-detail-modal-panel) {
  border-color: var(--jc-line);
  border-radius: 16px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

/* 社区、揭榜、活动、项目与个人中心使用同一表面和交互语言。 */
.opc-extension-page.is-jc-public :is(.community-tabs button.is-active, .community-topic-row.is-active) {
  border-color: var(--jc-gold-400);
  color: var(--jc-pine-900);
  background: var(--jc-gold-100);
}

.opc-extension-page.is-jc-public .community-composer-toggle {
  min-height: 52px;
  border-color: var(--jc-line);
  border-radius: 12px;
  color: var(--jc-pine-700);
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public .community-composer-toggle:hover {
  border-color: var(--jc-gold-400);
  color: var(--jc-pine-900);
  background: var(--jc-gold-100);
}

.opc-extension-page.is-jc-public .community-empty {
  min-height: 200px;
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 2rem;
  border: 1px solid var(--jc-line);
  border-radius: 15px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
  text-align: center;
}

.opc-extension-page.is-jc-public .bounty-toolbar {
  align-items: center;
  margin-bottom: 1.1rem;
  padding: 1rem 1.2rem;
  border: 1px solid var(--jc-line);
  border-radius: 15px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public .bounty-publish-button {
  min-height: 42px;
  padding: 0.55rem 1.1rem;
  white-space: nowrap;
}

.opc-extension-page.is-jc-public .community-rich-editor:focus {
  border-color: var(--jc-teal-500);
}

.opc-extension-page.is-jc-public :is(.event-filter-tabs a.is-active, .event-list-body footer a) {
  color: #fffefc;
  background: var(--jc-pine-900);
}

.opc-extension-page.is-jc-public :is(.event-list-cover > em, .event-detail-hero-content > p span) {
  border-radius: 999px;
  color: var(--jc-pine-900);
  background: var(--jc-gold-100);
}

.opc-extension-page.is-jc-public :is(.apply-card, .project-submit-form, .profile-workbench-content, .expert-application-status, .partner-application-status) {
  border-color: var(--jc-line);
  border-radius: 16px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public :is(.profile-avatar-card, .profile-workbench-nav, .profile-list-panel) {
  border-color: var(--jc-line);
  border-radius: 15px;
  background: var(--jc-surface);
  box-shadow: var(--jc-shadow);
}

.opc-extension-page.is-jc-public .profile-workbench-nav a {
  border-left-color: transparent;
  border-radius: 8px;
  color: var(--jc-muted);
}

.opc-extension-page.is-jc-public .profile-workbench-nav a:hover,
.opc-extension-page.is-jc-public .profile-workbench-nav a.is-active {
  border-left-color: var(--jc-gold-400);
  color: var(--jc-pine-900);
  background: var(--jc-gold-100);
}

.opc-extension-page.is-jc-public :is(.apply-card header span, .apply-progress i) {
  background: var(--jc-pine-700);
}

.opc-extension-page.is-jc-public .star-company-data-cover {
  background: linear-gradient(125deg, var(--jc-pine-900), var(--jc-teal-500));
}

.auth-home.is-jc-public .auth-tech-card {
  border-color: var(--jc-line);
  border-radius: 18px;
  box-shadow: 0 20px 48px rgba(20, 58, 51, 0.13);
}

.auth-home.is-jc-public :is(.auth-primary-button, .auth-submit-button) {
  border-color: var(--jc-pine-900);
  color: #fffefc;
  background: var(--jc-pine-900);
}

@media (max-width: 720px) {
  .opc-extension-page.is-jc-public:not(.is-opc-home) .opc-extension-main {
    padding: 1rem 0.85rem 3rem;
  }

  .opc-extension-page.is-jc-public .policy-chatbot-workspace {
    grid-template-rows: auto auto auto;
  }

  .opc-extension-page.is-jc-public .policy-chatbot-shell {
    min-height: 300px;
    max-height: 76vh;
  }

  .opc-extension-page.is-jc-public .policy-chatbot-shell:has(.policy-chat-form) {
    min-height: 420px;
  }

  .opc-extension-page.is-jc-public .policy-chat-message {
    max-width: 92%;
  }

  .opc-extension-page.is-jc-public .module-search-panel,
  .opc-extension-page.is-jc-public .policy-chatbot-head {
    padding: 0.9rem;
  }
}
