This commit is contained in:
Zuev
2026-10-02 04:07:56 +03:00
parent 97bf3cc50a
commit fc5801d683
42 changed files with 1201 additions and 305 deletions

View File

@@ -51,15 +51,13 @@
/* ===== Cards ===== */
.card {
background: var(--bg-card);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
border: 1px solid var(--bg-card-border);
border-radius: var(--radius-md);
padding: 1.75rem;
position: relative;
overflow: visible;
transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
animation: slideUpCard 0.5s cubic-bezier(0.25, 0.8, 0.25, 1) both;
/* Непрозрачная поверхность не требует фильтрации и трансформации фонового слоя. */
transition: background-color var(--transition), border-color var(--transition), box-shadow var(--transition);
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
}
@@ -2870,6 +2868,51 @@ input[type="number"] {
white-space: nowrap;
}
/* React-селекты не создают соседние DOM-узлы через MutationObserver. */
.react-custom-select {
position: relative;
min-width: 0;
}
.react-custom-select select[hidden] {
display: none !important;
}
.card:has(.react-custom-select.select-layer-active),
.settings-card:has(.react-custom-select.select-layer-active) {
position: relative;
z-index: 10001;
}
.react-custom-select .custom-select-trigger {
font-family: inherit;
text-align: left;
transform: none;
}
.react-custom-select .custom-select-item {
display: block;
width: 100%;
border: 0;
background: transparent;
font-family: inherit;
text-align: left;
}
.react-custom-select .custom-select-item.selected {
background: var(--accent-glow);
}
[data-theme="light"] .react-custom-select .custom-select-item.selected {
background: rgba(99, 102, 241, 0.15);
}
.react-select-options {
list-style: none;
margin: 0;
padding: 0;
}
.custom-select-icon {
margin-left: 0.75rem;
display: flex;
@@ -3941,8 +3984,6 @@ tbody tr:hover {
display: inline-flex;
align-items: center;
justify-content: center;
backdrop-filter: blur(12px);
-webkit-backdrop-filter: blur(12px);
padding: 0;
transition: background var(--transition), border-color var(--transition), color var(--transition), box-shadow var(--transition), transform var(--transition);
z-index: 100;
@@ -4187,9 +4228,9 @@ tbody tr:hover {
.project-dialog-field textarea { width: 100%; resize: vertical; }
.project-dialog-error { min-height: 1.3rem; margin-top: 0.35rem; color: var(--danger, #dc2626); font-size: 0.85rem; }
/* ===== Êëàññû ýòàïà 5 (âîëíà 1): çàìåíà inline-ñòèëåé ïåðåíåñ¸ííûõ âêëàäîê ===== */
/* ===== Классы этапа 5 (волна 1): замена inline-стилей перенесённых вкладок ===== */
/* Çàãîëîâîê êàðòî÷êè ñ äåéñòâèåì ñïðàâà (àóäèòîðèè) */
/* Заголовок карточки с действием справа (аудитории) */
.card-toolbar {
display: flex;
justify-content: space-between;
@@ -4203,7 +4244,7 @@ tbody tr:hover {
margin: 0;
}
/* Ñòðîêè è ãðóïïû ôîðì */
/* Строки и группы форм */
.form-row--spacing {
margin-top: 1rem;
}
@@ -4234,7 +4275,7 @@ tbody tr:hover {
margin-bottom: 0;
}
/* ß÷åéêè òàáëèö */
/* Ячейки таблиц */
.th-actions {
text-align: right;
}
@@ -4258,7 +4299,7 @@ tbody tr:hover {
font-size: 0.75rem;
}
/* Ìîäàëüíûå îêíà ïåðåíåñ¸ííûõ âêëàäîê */
/* Модальные окна перенесённых вкладок */
.modal-content--medium {
max-width: 600px;
width: 90%;
@@ -4287,7 +4328,7 @@ tbody tr:hover {
margin-top: 0;
}
/* Ñîñòîÿíèå çàãðóçêè lazy-âêëàäêè */
/* Состояние загрузки lazy-вкладки */
.tab-loading {
display: flex;
align-items: center;
@@ -4297,7 +4338,7 @@ tbody tr:hover {
color: var(--text-secondary);
}
/* Äàøáîðä: ìåòðèêè è ìîíèòîðèíã */
/* Дашборд: метрики и мониторинг */
.dashboard-metric-label {
font-size: 0.85rem;
color: var(--text-secondary);
@@ -4350,7 +4391,7 @@ tbody tr:hover {
border: 1px solid rgba(16, 185, 129, 0.2);
}
/* Äàøáîðä: öåíòð ïðåäóïðåæäåíèé (Red Zone) */
/* Дашборд: центр предупреждений (Red Zone) */
.red-zone-card {
border-top: 4px solid var(--error, #ef4444);
}
@@ -4390,9 +4431,9 @@ tbody tr:hover {
color: var(--text-secondary);
}
/* ===== Ýòàï 5 (âîëíà 2): êëàññû inline-ñòèëåé ïåðåíåñ¸ííûõ âêëàäîê ===== */
/* ===== Этап 5 (волна 2): классы inline-стилей перенесённых вкладок ===== */
/* Øèðîêèå ìîäàëüíûå îêíà (ïîäãðóïïû, ïðîôèëè, êàëåíäàðíûå ãðàôèêè) */
/* Широкие модальные окна (подгруппы, профили, календарные графики) */
.modal-content--wide {
max-width: 700px;
width: 90%;
@@ -4408,7 +4449,7 @@ tbody tr:hover {
width: 90%;
}
/* Ôîðìà ïðîôèëÿ íà âêëàäêå ñòðóêòóðû âóçà */
/* Форма профиля на вкладке структуры вуза */
.profile-form-spec {
flex: 1;
min-width: 200px;
@@ -4424,13 +4465,13 @@ tbody tr:hover {
min-width: 250px;
}
/* Ðÿä êíîïîê ôîðìû, âûðîâíåííûõ ïî íèæíåé êðîìêå */
/* Ряд кнопок формы, выровненных по нижней кромке */
.form-actions-row {
display: flex;
gap: 0.5rem;
align-items: flex-end;
}
/* Âîëíà 3 (ýòàï 5): çàìåíà inline-ñòèëÿ èç legacy department-workspace.html */
/* Волна 3 (этап 5): замена inline-стиля из legacy department-workspace.html */
.schedule-section-label--flush {
margin: 0;
}
}