- Added HTTP server with CORS support and various endpoints - Introduced http_tx/http_rx channels for HTTP server control - Cleaned up build.rs by removing commented code - Updated .gitignore to use *.rdb pattern instead of .rdb - Simplified capabilities.json to empty object - Improved UI initialization with better error handling - Reorganized module imports in main.rs - Added worker count configuration for HTTP server The changes introduce a new HTTP server capability while cleaning up and improving existing code structure. The HTTP server includes authentication, session management, and websocket support.
249 lines
4.1 KiB
CSS
249 lines
4.1 KiB
CSS
:root {
|
|
--background: #1a1a2e;
|
|
--foreground: #ffffff;
|
|
--primary: #4f46e5;
|
|
--primary-foreground: #ffffff;
|
|
--secondary: #374151;
|
|
--secondary-foreground: #ffffff;
|
|
--muted: #4b5563;
|
|
--muted-foreground: #9ca3af;
|
|
--accent: #7c3aed;
|
|
--destructive: #ef4444;
|
|
--border: #374151;
|
|
--input: #1f2937;
|
|
--radius: 0.5rem;
|
|
}
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Segoe UI', sans-serif;
|
|
background-color: var(--background);
|
|
color: var(--foreground);
|
|
min-height: 100vh;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
.auth-container {
|
|
display: flex;
|
|
width: 100%;
|
|
max-width: 1200px;
|
|
background-color: var(--secondary);
|
|
border-radius: var(--radius);
|
|
overflow: hidden;
|
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
|
|
}
|
|
|
|
.auth-left-panel {
|
|
flex: 1;
|
|
padding: 4rem;
|
|
background: linear-gradient(135deg, var(--primary), var(--accent));
|
|
color: var(--primary-foreground);
|
|
display: flex;
|
|
flex-direction: column;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.auth-logo h1 {
|
|
font-size: 2rem;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.auth-quote {
|
|
font-style: italic;
|
|
margin-top: auto;
|
|
}
|
|
|
|
.auth-quote p:last-child {
|
|
text-align: right;
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.auth-form-container {
|
|
flex: 1;
|
|
padding: 4rem;
|
|
max-width: 500px;
|
|
}
|
|
|
|
.auth-form-header {
|
|
margin-bottom: 2rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.auth-form-header h2 {
|
|
font-size: 1.5rem;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.auth-form-header p {
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.auth-error {
|
|
background-color: var(--destructive);
|
|
color: var(--primary-foreground);
|
|
padding: 0.75rem;
|
|
border-radius: var(--radius);
|
|
margin-bottom: 1rem;
|
|
text-align: center;
|
|
}
|
|
|
|
.auth-social-buttons {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
gap: 0.75rem;
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.auth-social-button {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 0.75rem;
|
|
border-radius: var(--radius);
|
|
font-weight: 500;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
border: 1px solid var(--border);
|
|
background-color: var(--input);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.auth-social-button:hover {
|
|
background-color: var(--muted);
|
|
}
|
|
|
|
.auth-social-icon {
|
|
width: 1.25rem;
|
|
height: 1.25rem;
|
|
margin-right: 0.5rem;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.auth-divider {
|
|
display: flex;
|
|
align-items: center;
|
|
margin: 1.5rem 0;
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.auth-divider::before,
|
|
.auth-divider::after {
|
|
content: "";
|
|
flex: 1;
|
|
border-bottom: 1px solid var(--border);
|
|
}
|
|
|
|
.auth-divider span {
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
.auth-form {
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.auth-form-group {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.auth-form-group label {
|
|
display: block;
|
|
margin-bottom: 0.5rem;
|
|
font-weight: 500;
|
|
}
|
|
|
|
.auth-form-group input {
|
|
width: 100%;
|
|
padding: 0.75rem;
|
|
border-radius: var(--radius);
|
|
border: 1px solid var(--border);
|
|
background-color: var(--input);
|
|
color: var(--foreground);
|
|
}
|
|
|
|
.auth-form-group input:focus {
|
|
outline: none;
|
|
border-color: var(--primary);
|
|
}
|
|
|
|
.auth-form-options {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.auth-remember-me {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.auth-remember-me input {
|
|
margin-right: 0.5rem;
|
|
}
|
|
|
|
.auth-forgot-password {
|
|
color: var(--primary);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.auth-forgot-password:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.auth-submit-button {
|
|
width: 100%;
|
|
padding: 0.75rem;
|
|
border-radius: var(--radius);
|
|
background-color: var(--primary);
|
|
color: var(--primary-foreground);
|
|
font-weight: 500;
|
|
border: none;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.auth-submit-button:hover {
|
|
background-color: var(--accent);
|
|
}
|
|
|
|
.auth-submit-button:disabled {
|
|
opacity: 0.7;
|
|
cursor: not-allowed;
|
|
}
|
|
|
|
.auth-signup-link {
|
|
text-align: center;
|
|
margin: 1.5rem 0;
|
|
color: var(--muted-foreground);
|
|
}
|
|
|
|
.auth-signup-link a {
|
|
color: var(--primary);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.auth-signup-link a:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.auth-container {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.auth-left-panel {
|
|
padding: 2rem;
|
|
}
|
|
|
|
.auth-form-container {
|
|
padding: 2rem;
|
|
max-width: 100%;
|
|
}
|
|
}
|