botserver/web/desktop/css/app.css
Rodrigo Rodriguez (Pragmatismo) 01e89c9358 feat: add actix-files dependency for file serving support
Added actix-files and its dependencies (http-range, mime_guess, unicase, v_htmlescape) to enable static file functionality in the botserver. This will allow serving static assets and files through the web server. The change includes all required transitive dependencies for proper file handling and MIME type detection.
2025-11-15 19:08:26 -03:00

324 lines
4.7 KiB
CSS

* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
background: #0f172a;
color: #e2e8f0;
height: 100vh;
overflow: hidden;
}
/* Navbar */
nav {
background: #1e293b;
border-bottom: 2px solid #334155;
padding: 0 1rem;
display: flex;
align-items: center;
height: 60px;
gap: 0.5rem;
}
nav .logo {
font-size: 1.5rem;
font-weight: bold;
background: linear-gradient(135deg, #3b82f6, #8b5cf6);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
margin-right: auto;
}
nav a {
color: #94a3b8;
text-decoration: none;
padding: 0.75rem 1.25rem;
border-radius: 0.5rem;
transition: all 0.2s;
font-weight: 500;
}
nav a:hover {
background: #334155;
color: #e2e8f0;
}
nav a.active {
background: #3b82f6;
color: white;
}
/* Main Content */
#main-content {
height: calc(100vh - 60px);
overflow: hidden;
}
.content-section {
display: none;
height: 100%;
overflow: auto;
}
.content-section.active {
display: block;
}
/* Panel Styles */
.panel {
background: #1e293b;
border: 1px solid #334155;
border-radius: 0.5rem;
}
/* Drive Styles */
.drive-layout {
display: grid;
grid-template-columns: 250px 1fr 300px;
gap: 1rem;
padding: 1rem;
height: 100%;
}
.drive-sidebar, .drive-details {
overflow-y: auto;
}
.drive-main {
display: flex;
flex-direction: column;
overflow: hidden;
}
.nav-item {
padding: 0.75rem 1rem;
display: flex;
align-items: center;
gap: 0.75rem;
cursor: pointer;
border-radius: 0.375rem;
margin: 0.25rem 0.5rem;
transition: background 0.2s;
}
.nav-item:hover {
background: #334155;
}
.nav-item.active {
background: #3b82f6;
}
.file-list {
flex: 1;
overflow-y: auto;
padding: 1rem;
}
.file-item {
padding: 1rem;
display: flex;
align-items: center;
gap: 1rem;
cursor: pointer;
border-radius: 0.375rem;
border-bottom: 1px solid #334155;
transition: background 0.2s;
}
.file-item:hover {
background: #334155;
}
.file-item.selected {
background: #1e40af;
}
.file-icon {
font-size: 2rem;
}
/* Tasks Styles */
.tasks-container {
max-width: 800px;
margin: 0 auto;
padding: 2rem;
}
.task-input {
display: flex;
gap: 0.5rem;
margin-bottom: 2rem;
}
.task-input input {
flex: 1;
padding: 0.75rem;
background: #1e293b;
border: 1px solid #334155;
border-radius: 0.5rem;
color: #e2e8f0;
font-size: 1rem;
}
.task-input input:focus {
outline: none;
border-color: #3b82f6;
}
.task-input button {
padding: 0.75rem 1.5rem;
background: #3b82f6;
color: white;
border: none;
border-radius: 0.5rem;
cursor: pointer;
font-weight: 600;
transition: background 0.2s;
}
.task-input button:hover {
background: #2563eb;
}
.task-list {
list-style: none;
}
.task-item {
padding: 1rem;
display: flex;
align-items: center;
gap: 1rem;
background: #1e293b;
border: 1px solid #334155;
border-radius: 0.5rem;
margin-bottom: 0.5rem;
}
.task-item.completed span {
text-decoration: line-through;
opacity: 0.5;
}
.task-item input[type="checkbox"] {
width: 1.25rem;
height: 1.25rem;
cursor: pointer;
}
.task-item span {
flex: 1;
}
.task-item button {
background: #ef4444;
color: white;
border: none;
padding: 0.5rem 0.75rem;
border-radius: 0.375rem;
cursor: pointer;
transition: background 0.2s;
}
.task-item button:hover {
background: #dc2626;
}
.task-filters {
display: flex;
gap: 0.5rem;
margin-top: 2rem;
padding-top: 2rem;
border-top: 1px solid #334155;
}
.task-filters button {
padding: 0.5rem 1rem;
background: #334155;
color: #e2e8f0;
border: none;
border-radius: 0.375rem;
cursor: pointer;
transition: all 0.2s;
}
.task-filters button.active {
background: #3b82f6;
}
/* Mail Styles */
.mail-layout {
display: grid;
grid-template-columns: 250px 350px 1fr;
gap: 1rem;
padding: 1rem;
height: 100%;
}
.mail-sidebar, .mail-list, .mail-content {
overflow-y: auto;
}
.mail-item {
padding: 1rem;
cursor: pointer;
border-bottom: 1px solid #334155;
transition: background 0.2s;
}
.mail-item:hover {
background: #334155;
}
.mail-item.unread {
font-weight: 600;
}
.mail-item.selected {
background: #1e40af;
}
.mail-content-view {
padding: 2rem;
}
.mail-header {
margin-bottom: 2rem;
padding-bottom: 1rem;
border-bottom: 1px solid #334155;
}
.mail-body {
line-height: 1.6;
}
/* Buttons */
button {
font-family: inherit;
}
button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
/* Utility */
h1, h2, h3 {
margin-bottom: 1rem;
}
.text-sm {
font-size: 0.875rem;
}
.text-xs {
font-size: 0.75rem;
}
.text-gray {
color: #94a3b8;
}
[x-cloak] {
display: none !important;
}