klg-asutk-app/app/globals.css
Yuriy 0150aba4f5 Consolidation: KLG ASUTK + PAPA integration
- Unify API: lib/api.ts uses /api/v1, inbox uses /api/inbox (rewrites)
- Remove localhost refs: openapi, inbox page
- Add rewrites: /api/inbox|tmc -> inbox-server, /api/v1 -> FastAPI
- Add stub routes: knowledge/insights, recommendations, search, log-error
- Transfer from PAPA: prompts (inspection, tmc), scripts, supabase, data/tmc-requests
- Fix inbox-server: ORDER BY created_at, package.json
- Remove redundant app/api/inbox/files route (rewrites handle it)
- knowledge/ in gitignore (large PDFs)

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-08 17:18:31 +03:00

136 lines
2.6 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Глобальные стили с поддержкой доступности */
/* Базовые стили */
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
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;
}
/* Фокус для доступности */
*:focus-visible {
outline: 2px solid #4a90e2;
outline-offset: 2px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
outline: 2px solid #4a90e2;
outline-offset: 2px;
}
/* Скрытие элементов для screen readers */
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border-width: 0;
}
/* Улучшение контраста для ссылок */
a {
color: #1e3a5f;
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
a:focus-visible {
outline: 2px solid #4a90e2;
outline-offset: 2px;
}
/* Стили для disabled элементов */
button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
cursor: not-allowed;
opacity: 0.6;
}
/* Улучшение читаемости */
p, li {
line-height: 1.6;
}
/* Минимальный размер области клика (44x44px для touch) */
button,
a[role="button"] {
min-height: 44px;
min-width: 44px;
}
/* Skip to main content link (для screen readers) */
.skip-to-main {
position: absolute;
top: -40px;
left: 0;
background: #1e3a5f;
color: white;
padding: 8px;
text-decoration: none;
z-index: 100;
}
.skip-to-main:focus {
top: 0;
}
/* Улучшение контраста для текста */
.text-primary {
color: #1e3a5f; /* Контраст с белым фоном: ~8.5:1 - AAA */
}
.text-secondary {
color: #666; /* Контраст с белым фоном: ~7.1:1 - AAA */
}
.text-error {
color: #c62828; /* Контраст с белым фоном: ~7.5:1 - AAA */
}
/* Анимации с учетом prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}
/* Высокий контраст режим */
@media (prefers-contrast: high) {
* {
border-color: currentColor;
}
button,
a {
border: 2px solid currentColor;
}
}