| /** |
| * DownloadSelector Component Styles |
| * Modern download selector with tabs, version dropdown, and rich content. |
| */ |
| |
| .selector { |
| background: var(--ai-bg-card); |
| border: 1px solid var(--ai-border-light); |
| border-radius: var(--ai-radius-lg); |
| overflow: hidden; |
| } |
| |
| /* Tab Navigation */ |
| .tabs { |
| display: flex; |
| background: var(--ai-gray-50); |
| border-bottom: 1px solid var(--ai-border-light); |
| padding: var(--ai-spacing-sm); |
| gap: var(--ai-spacing-xs); |
| } |
| |
| .tab { |
| flex: 1; |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: var(--ai-spacing-sm); |
| padding: var(--ai-spacing-md) var(--ai-spacing-lg); |
| background: transparent; |
| border: none; |
| border-radius: var(--ai-radius-md); |
| font-size: var(--ai-text-base); |
| font-weight: 500; |
| color: var(--ai-text-secondary); |
| cursor: pointer; |
| transition: all var(--ai-transition-fast); |
| } |
| |
| .tab:hover { |
| background: var(--ai-bg-card); |
| color: var(--ai-text-primary); |
| } |
| |
| .tabActive { |
| background: var(--ai-bg-card); |
| color: var(--ai-blue); |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); |
| } |
| |
| .tabIcon { |
| font-size: 1.1em; |
| } |
| |
| .tabLabel { |
| white-space: nowrap; |
| } |
| |
| /* Content Panel */ |
| .panel { |
| padding: var(--ai-spacing-2xl); |
| } |
| |
| /* Download Content */ |
| .downloadContent { |
| display: flex; |
| flex-direction: column; |
| gap: var(--ai-spacing-xl); |
| } |
| |
| /* Method Description */ |
| .methodDescription { |
| color: var(--ai-text-secondary); |
| line-height: 1.6; |
| } |
| |
| .methodDescription p { |
| margin: 0; |
| } |
| |
| .methodDescription .portsDescription { |
| margin-top: var(--ai-spacing-sm); |
| font-size: var(--ai-text-sm); |
| color: var(--ai-text-secondary); |
| } |
| |
| .portsDescription { |
| margin-top: var(--ai-spacing-sm); |
| font-size: var(--ai-text-sm); |
| color: var(--ai-text-secondary); |
| } |
| |
| /* Version Selector */ |
| .versionSelector { |
| display: flex; |
| align-items: center; |
| gap: var(--ai-spacing-lg); |
| } |
| |
| .versionSelector label { |
| font-weight: 600; |
| color: var(--ai-text-primary); |
| white-space: nowrap; |
| } |
| |
| .versionSelector select { |
| flex: 1; |
| max-width: 300px; |
| padding: var(--ai-spacing-md) var(--ai-spacing-lg); |
| font-size: var(--ai-text-base); |
| border: 1px solid var(--ai-border-medium); |
| border-radius: var(--ai-radius-md); |
| background: var(--ai-bg-card); |
| color: var(--ai-text-primary); |
| cursor: pointer; |
| appearance: none; |
| background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E"); |
| background-repeat: no-repeat; |
| background-position: right 12px center; |
| padding-right: 36px; |
| } |
| |
| .versionSelector select:focus { |
| outline: none; |
| border-color: var(--ai-blue); |
| box-shadow: 0 0 0 3px rgba(0, 122, 255, 0.15); |
| } |
| |
| /* Build Tool Tabs (Maven/Gradle) */ |
| .buildToolTabs { |
| display: flex; |
| gap: var(--ai-spacing-xs); |
| background: var(--ai-gray-100); |
| padding: var(--ai-spacing-xs); |
| border-radius: var(--ai-radius-md); |
| width: fit-content; |
| } |
| |
| .buildToolTab { |
| padding: var(--ai-spacing-sm) var(--ai-spacing-xl); |
| background: transparent; |
| border: none; |
| border-radius: var(--ai-radius-sm); |
| font-size: var(--ai-text-sm); |
| font-weight: 500; |
| color: var(--ai-text-secondary); |
| cursor: pointer; |
| transition: all var(--ai-transition-fast); |
| } |
| |
| .buildToolTab:hover { |
| color: var(--ai-text-primary); |
| } |
| |
| .buildToolTabActive { |
| background: var(--ai-bg-card); |
| color: var(--ai-text-primary); |
| box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); |
| } |
| |
| /* Code Section */ |
| .codeSection { |
| display: flex; |
| flex-direction: column; |
| gap: var(--ai-spacing-sm); |
| } |
| |
| .codeSectionHeader { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| } |
| |
| .codeSectionHeader h4 { |
| margin: 0; |
| font-size: 1rem; |
| font-weight: 600; |
| color: var(--ai-text-primary); |
| } |
| |
| .copyButton { |
| padding: var(--ai-spacing-xs) var(--ai-spacing-md); |
| background: var(--ai-gray-100); |
| border: 1px solid var(--ai-border-light); |
| border-radius: var(--ai-radius-sm); |
| font-size: var(--ai-text-sm); |
| color: var(--ai-text-secondary); |
| cursor: pointer; |
| transition: all var(--ai-transition-fast); |
| } |
| |
| .copyButton:hover { |
| background: var(--ai-gray-200); |
| color: var(--ai-text-primary); |
| } |
| |
| .codeNote { |
| margin: var(--ai-spacing-sm) 0 0 0; |
| font-size: var(--ai-text-sm); |
| color: var(--ai-text-secondary); |
| } |
| |
| /* Download Card */ |
| .downloadCard { |
| display: flex; |
| align-items: center; |
| justify-content: space-between; |
| padding: var(--ai-spacing-lg); |
| background: var(--ai-gray-50); |
| border-radius: var(--ai-radius-md); |
| gap: var(--ai-spacing-lg); |
| } |
| |
| .downloadCardInfo { |
| display: flex; |
| flex-direction: column; |
| gap: var(--ai-spacing-xs); |
| } |
| |
| .downloadFileName { |
| font-family: var(--ai-font-mono, monospace); |
| font-size: var(--ai-text-base); |
| font-weight: 500; |
| color: var(--ai-text-primary); |
| } |
| |
| .downloadMeta { |
| font-size: var(--ai-text-sm); |
| color: var(--ai-text-secondary); |
| } |
| |
| .downloadButton { |
| display: inline-flex; |
| align-items: center; |
| justify-content: center; |
| padding: var(--ai-spacing-md) var(--ai-spacing-2xl); |
| background: var(--ai-blue); |
| color: white; |
| font-size: var(--ai-text-base); |
| font-weight: 600; |
| border-radius: var(--ai-radius-md); |
| text-decoration: none; |
| transition: all var(--ai-transition-fast); |
| white-space: nowrap; |
| } |
| |
| .downloadButton:hover { |
| background: var(--ai-blue-dark); |
| color: white; |
| text-decoration: none; |
| } |
| |
| /* Verify Row */ |
| .verifyRow { |
| display: flex; |
| align-items: center; |
| gap: var(--ai-spacing-md); |
| font-size: var(--ai-text-sm); |
| color: var(--ai-text-secondary); |
| } |
| |
| .verifyRow a { |
| color: var(--ai-blue); |
| text-decoration: none; |
| } |
| |
| .verifyRow a:hover { |
| text-decoration: underline; |
| } |
| |
| /* Resource Links */ |
| .resourceLinks { |
| display: flex; |
| flex-wrap: wrap; |
| gap: var(--ai-spacing-lg); |
| padding-top: var(--ai-spacing-lg); |
| border-top: 1px solid var(--ai-border-light); |
| } |
| |
| .resourceLinks a { |
| color: var(--ai-blue); |
| text-decoration: none; |
| font-size: var(--ai-text-base); |
| } |
| |
| .resourceLinks a:hover { |
| text-decoration: underline; |
| } |
| |
| /* Responsive */ |
| @media (max-width: 767px) { |
| .tabs { |
| flex-wrap: wrap; |
| } |
| |
| .tab { |
| flex: 1 1 calc(50% - var(--ai-spacing-xs)); |
| min-width: calc(50% - var(--ai-spacing-xs)); |
| padding: var(--ai-spacing-sm) var(--ai-spacing-md); |
| } |
| |
| .tabIcon { |
| display: none; |
| } |
| |
| .panel { |
| padding: var(--ai-spacing-lg); |
| } |
| |
| .versionSelector { |
| flex-direction: column; |
| align-items: stretch; |
| gap: var(--ai-spacing-sm); |
| } |
| |
| .versionSelector select { |
| max-width: none; |
| } |
| |
| .downloadCard { |
| flex-direction: column; |
| text-align: center; |
| } |
| |
| .downloadButton { |
| width: 100%; |
| } |
| |
| .verifyRow { |
| flex-direction: column; |
| align-items: flex-start; |
| gap: var(--ai-spacing-sm); |
| } |
| |
| .resourceLinks { |
| flex-direction: column; |
| gap: var(--ai-spacing-sm); |
| } |
| |
| .buildToolTabs { |
| width: 100%; |
| } |
| |
| .buildToolTab { |
| flex: 1; |
| } |
| } |