Files
haproxy-openmanager/frontend/src/index.css
T
taylanbakircioglu deb784bb65 fix: ACME certificate issuance improvements, null-safe hardening, guided setup UX, and order list enhancements (Issue #9)
- Fix critical cascading NULL status bug in ACME challenge flow that could cause 404s
- Add defense-in-depth NULL handling across all ACME service methods
- Add new GET /api/letsencrypt/prerequisites endpoint for configuration checks
- Add interactive ACME Setup Guide with step-by-step navigation links
- Add URL-based tab navigation in Settings and SSL Management pages
- Harden retry flow: return clear 409 errors for invalid/cancelled orders
- Allow cancellation of invalid orders (backend + frontend)
- Improve error message extraction with consistent getErrorMsg helper
- Add status filter tabs (Active/Completed/Failed/All) for order list
- Add visual dimming for cancelled/invalid orders
- Add enhanced pagination with size changer and total count
- Add comprehensive diagnostic logging with ACME: prefix
- Update README with ACME architecture docs, quick start guide, and troubleshooting

Resolves #9

Made-with: Cursor
2026-04-04 15:15:05 +03:00

154 lines
4.2 KiB
CSS

html, body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
html[data-theme='dark'],
html[data-theme='dark'] body {
background-color: #000000;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
* {
box-sizing: border-box;
}
.ant-layout {
min-height: 100vh;
}
/* Fix Input Text Alignment for search fields */
.ant-input {
line-height: 1.5715;
}
.ant-input::placeholder {
line-height: 1.5715;
}
/* Complete reset approach for search inputs */
.search-input *,
.search-input *:before,
.search-input *:after {
box-sizing: border-box !important;
}
.search-input,
.search-input .ant-input,
.search-input.ant-input,
.search-input .ant-input-affix-wrapper,
.search-input.ant-input-affix-wrapper,
.search-input .ant-input-search,
.search-input .ant-input-search .ant-input {
border: 1px solid #d9d9d9 !important;
border-radius: 6px !important;
box-shadow: none !important;
outline: none !important;
background: #fff !important;
transition: border-color 0.3s ease !important;
}
/* Completely remove all possible outlines and shadows */
.search-input:focus,
.search-input .ant-input:focus,
.search-input.ant-input:focus,
.search-input .ant-input-affix-wrapper:focus,
.search-input.ant-input-affix-wrapper:focus,
.search-input .ant-input-search:focus,
.search-input .ant-input-search .ant-input:focus,
.search-input .ant-input-focused,
.search-input.ant-input-focused,
.search-input .ant-input-affix-wrapper-focused,
.search-input.ant-input-affix-wrapper-focused {
border: 1px solid #1890ff !important;
box-shadow: none !important;
outline: none !important;
}
.search-input:focus-visible,
.search-input .ant-input:focus-visible,
.search-input.ant-input:focus-visible,
.search-input .ant-input-affix-wrapper:focus-visible,
.search-input.ant-input-affix-wrapper:focus-visible {
border: 1px solid #1890ff !important;
box-shadow: none !important;
outline: none !important;
}
/* Hover states - simple and clean */
.search-input:hover,
.search-input .ant-input:hover,
.search-input.ant-input:hover,
.search-input .ant-input-affix-wrapper:hover,
.search-input.ant-input-affix-wrapper:hover {
border-color: #40a9ff !important;
}
/* Remove all browser default styles completely */
.search-input input,
.search-input .ant-input {
-webkit-appearance: none !important;
-moz-appearance: none !important;
appearance: none !important;
outline: none !important;
box-shadow: none !important;
}
/* Responsive design */
@media (max-width: 768px) {
.search-input .ant-input,
.search-input.ant-input {
font-size: 16px !important;
min-height: 40px !important;
}
}
@media (max-width: 480px) {
.search-input {
width: 100% !important;
max-width: 200px;
}
}
/* Dark mode overrides for search inputs */
[data-theme='dark'] .search-input,
[data-theme='dark'] .search-input .ant-input,
[data-theme='dark'] .search-input.ant-input,
[data-theme='dark'] .search-input .ant-input-affix-wrapper,
[data-theme='dark'] .search-input.ant-input-affix-wrapper,
[data-theme='dark'] .search-input .ant-input-search,
[data-theme='dark'] .search-input .ant-input-search .ant-input {
background: #141414 !important;
border-color: #434343 !important;
color: rgba(255, 255, 255, 0.85) !important;
}
[data-theme='dark'] .search-input:focus,
[data-theme='dark'] .search-input .ant-input:focus,
[data-theme='dark'] .search-input.ant-input:focus,
[data-theme='dark'] .search-input .ant-input-affix-wrapper:focus,
[data-theme='dark'] .search-input.ant-input-affix-wrapper:focus,
[data-theme='dark'] .search-input .ant-input-affix-wrapper-focused,
[data-theme='dark'] .search-input.ant-input-affix-wrapper-focused {
border-color: #177ddc !important;
}
[data-theme='dark'] .search-input:hover,
[data-theme='dark'] .search-input .ant-input:hover,
[data-theme='dark'] .search-input.ant-input:hover,
[data-theme='dark'] .search-input .ant-input-affix-wrapper:hover,
[data-theme='dark'] .search-input.ant-input-affix-wrapper:hover {
border-color: #177ddc !important;
}
.acme-order-terminal td {
opacity: 0.55;
}