v1.1.0: Полный редизайн фронтенда, усиление безопасности и обновление версии
Deploy Telegram Bot / build-and-push (push) Successful in 5m19s
Deploy Telegram Bot / deploy (push) Successful in 10s

This commit is contained in:
2026-04-21 15:21:18 +03:00
parent b6af5f047c
commit 176f1105ab
18 changed files with 1392 additions and 413 deletions
@@ -1,86 +1,39 @@
.page {
position: relative;
display: flex;
flex-direction: column;
}
main {
flex: 1;
min-height: 100vh;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
width: var(--sidebar-width);
background: linear-gradient(180deg, #0f1629 0%, #1a0a2e 100%);
border-right: 1px solid var(--border-color);
position: fixed;
top: 0;
left: 0;
height: 100vh;
z-index: 100;
display: flex;
align-items: center;
flex-direction: column;
transition: transform var(--transition-smooth);
}
.top-row ::deep a, .top-row ::deep .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row ::deep a:hover, .top-row ::deep .btn-link:hover {
text-decoration: underline;
}
.top-row ::deep a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row {
justify-content: space-between;
}
.top-row ::deep a, .top-row ::deep .btn-link {
margin-left: 0;
}
.main-area {
flex: 1;
margin-left: var(--sidebar-width);
min-height: 100vh;
}
@media (min-width: 641px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth ::deep a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row, article {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
.content {
padding: 1.5rem 2rem;
max-width: 100%;
}
/* === Error UI === */
#blazor-error-ui {
color-scheme: light only;
background: lightyellow;
background: var(--bg-secondary);
border-top: 1px solid var(--border-color);
bottom: 0;
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.3);
box-sizing: border-box;
display: none;
left: 0;
@@ -88,11 +41,44 @@ main {
position: fixed;
width: 100%;
z-index: 1000;
color: var(--text-secondary);
font-size: 0.875rem;
}
#blazor-error-ui .reload {
color: var(--accent-secondary);
margin-left: 0.5rem;
}
#blazor-error-ui .dismiss {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}
/* === Mobile Responsive === */
@media (max-width: 768px) {
.sidebar {
transform: translateX(-100%);
width: 280px;
}
.sidebar.open {
transform: translateX(0);
}
.main-area {
margin-left: 0;
}
.content {
padding: 1rem;
}
}
@media (min-width: 769px) and (max-width: 1024px) {
.content {
padding: 1.25rem 1.5rem;
}
}