/
Benis
/
Korochki
Обзор
Документация
Войти
/
Benis
/
Korochki
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
css/style.css
848 строк
21 KB
Benis
pervaya versyia Korochki.yest
13 май 2026, 12:37
13 май 2026, 12:37
1e34d0e
Код
Авторство
О чём код?
/* ============================================================ КОРОЧКИ.ЕСТЬ — Clean Modern EdTech Concept: Confident, warm, human. No gimmicks. Fonts: DM Sans (UI) + Fraunces (display accents) Palette: Off-white bg, deep charcoal, coral-red accent ============================================================ */ @import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Fraunces:ital,wght@0,700;0,800;1,600&display=swap'); /* ── Tokens ─────────────────────────────────────────────── */ :root { --bg: #f5f3ef; --bg-2: #eceae4; --bg-3: #e2dfd8; --surface: #ffffff; --ink: #1a1a1a; --ink-2: #2d2d2d; --ink-3: #4a4a4a; --muted: #8a8780; --accent: #e8442a; --accent-dk: #c73319; --accent-lt: #fde8e4; --success: #2d7a4f; --success-bg:#e8f5ee; --warning: #b45309; --warning-bg:#fef3c7; --border: rgba(26,26,26,.1); --border-md: rgba(26,26,26,.16); --radius-sm: 8px; --radius: 12px; --radius-lg: 18px; --shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04); --shadow: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04); --shadow-lg: 0 12px 32px rgba(0,0,0,.1), 0 4px 8px rgba(0,0,0,.05); } /* ── Reset ───────────────────────────────────────────────── */ *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; } html { scroll-behavior:smooth; } /* ── Base ────────────────────────────────────────────────── */ body { font-family: 'DM Sans', sans-serif; font-weight: 400; background: var(--bg); color: var(--ink-3); line-height: 1.6; min-height: 100vh; display: flex; flex-direction: column; -webkit-font-smoothing: antialiased; } .container { max-width: 1180px; margin: 0 auto; padding: 0 28px; width: 100%; } /* ── Typography ──────────────────────────────────────────── */ h1, h2, h3, h4, h5, h6 { font-family: 'DM Sans', sans-serif; font-weight: 700; color: var(--ink); line-height: 1.2; letter-spacing: -.02em; } h1 { font-size: clamp(1.9rem, 4vw, 2.9rem); } h2 { font-size: clamp(1.4rem, 2.5vw, 2rem); } h3 { font-size: 1.2rem; } h5 { font-size: .95rem; font-weight: 600; } /* Display style — Fraunces for hero headings */ .display-heading { font-family: 'Fraunces', serif; font-weight: 800; letter-spacing: -.03em; } a { color: var(--accent); text-decoration: none; transition: color .18s; } a:hover { color: var(--accent-dk); } p { color: var(--ink-3); } /* ── Header ──────────────────────────────────────────────── */ .header { background: var(--surface); border-bottom: 1px solid var(--border); padding: 0; position: sticky; top: 0; z-index: 1000; } .header-content { display: flex; justify-content: space-between; align-items: center; height: 64px; gap: 24px; } .logo { font-family: 'DM Sans', sans-serif; font-size: 1.2rem; font-weight: 700; color: var(--ink) !important; letter-spacing: -.025em; display: flex; align-items: center; gap: 9px; white-space: nowrap; } .logo i { color: var(--accent); font-size: 1.1rem; } .logo span { color: var(--accent); } .logo:hover { color: var(--ink) !important; } .nav-menu { display: flex; align-items: center; gap: 2px; } .nav-menu a { color: var(--ink-3); font-size: .875rem; font-weight: 500; padding: 7px 13px; border-radius: var(--radius-sm); transition: all .17s; display: flex; align-items: center; gap: 6px; white-space: nowrap; } .nav-menu a i { font-size: .78rem; opacity: .7; } .nav-menu a:hover { color: var(--ink); background: var(--bg-2); } .nav-menu a.active { color: var(--accent); background: var(--accent-lt); font-weight: 600; } .nav-menu a.active i { opacity: 1; } /* CTA button in nav */ .nav-menu a[href*="new_application"] { background: var(--accent); color: #fff !important; padding: 8px 16px; border-radius: var(--radius-sm); } .nav-menu a[href*="new_application"]:hover { background: var(--accent-dk); } .nav-menu a[href*="new_application"].active { background: var(--accent-dk); } /* Logout */ .nav-menu a[href*="logout"] { color: var(--muted); } .nav-menu a[href*="logout"]:hover { color: var(--ink); background: var(--bg-2); } /* ── Main ────────────────────────────────────────────────── */ .main-content { flex: 1; padding: 48px 0 80px; } /* ── Buttons ─────────────────────────────────────────────── */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 11px 24px; border: none; border-radius: var(--radius-sm); font-family: 'DM Sans', sans-serif; font-size: .9rem; font-weight: 600; cursor: pointer; transition: all .18s; text-decoration: none; letter-spacing: -.01em; } .btn-primary { background: var(--accent); color: #fff; box-shadow: 0 2px 8px rgba(232,68,42,.25); } .btn-primary:hover { background: var(--accent-dk); color: #fff; transform: translateY(-1px); box-shadow: 0 4px 14px rgba(232,68,42,.3); } .btn-primary:active { transform: none; } .btn-success { background: var(--success-bg); color: var(--success); border: 1px solid rgba(45,122,79,.2); } .btn-success:hover { background: #d4eddf; transform: translateY(-1px); } .btn-danger { background: var(--accent-lt); color: var(--accent); border: 1px solid rgba(232,68,42,.2); } .btn-danger:hover { background: #fad5cf; transform: translateY(-1px); } .btn-secondary { background: var(--surface); color: var(--ink-3); border: 1px solid var(--border-md); } .btn-secondary:hover { background: var(--bg-2); color: var(--ink); transform: translateY(-1px); } .btn-sm { padding: 7px 14px; font-size: .82rem; } .w-100 { width: 100%; } .me-2 { margin-right: .5rem; } /* ── Cards ───────────────────────────────────────────────── */ .card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 28px; margin-bottom: 20px; transition: border-color .2s, box-shadow .2s, transform .2s; } .card:hover { border-color: var(--border-md); box-shadow: var(--shadow); transform: translateY(-2px); } .card-body { } .card-title { font-weight: 700; color: var(--ink); margin-bottom: 6px; } .card-text { color: var(--muted); font-size: .92rem; line-height: 1.65; } /* Stat card */ .card.stat-card { text-align: center; padding: 24px 20px; } .card.stat-card h3 { font-family: 'Fraunces', serif; font-size: 2.8rem; font-weight: 800; color: var(--accent); letter-spacing: -.04em; margin-bottom: 4px; } .card.stat-card p { color: var(--muted); font-size: .82rem; text-transform: uppercase; letter-spacing: .06em; font-weight: 600; margin: 0; } /* Feature icon */ .feature-icon { width: 48px; height: 48px; border-radius: 12px; background: var(--accent-lt); display: flex; align-items: center; justify-content: center; font-size: 1.15rem; color: var(--accent); margin-bottom: 16px; } /* ── Hero badge ──────────────────────────────────────────── */ .hero-badge { display: inline-flex; align-items: center; gap: 7px; padding: 5px 14px; background: var(--accent-lt); border-radius: 20px; font-size: .78rem; font-weight: 700; color: var(--accent); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 18px; } /* ── About / CTA section ─────────────────────────────────── */ .about-section { background: var(--ink); border-radius: var(--radius-lg); padding: 52px 52px 52px 56px; position: relative; overflow: hidden; } .about-section h2, .about-section h1 { color: #fff; } .about-section p { color: rgba(255,255,255,.62); font-size: 1rem; line-height: 1.75; } .about-section .hero-badge { background: rgba(232,68,42,.18); color: #ff8c7a; } /* Decorative corner shape */ .about-section::after { content: ''; position: absolute; right: -80px; top: -80px; width: 320px; height: 320px; border-radius: 50%; border: 1px solid rgba(255,255,255,.06); pointer-events: none; } .about-section::before { content: ''; position: absolute; right: 40px; top: 40px; width: 180px; height: 180px; border-radius: 50%; border: 1px solid rgba(255,255,255,.04); pointer-events: none; } /* ── Forms ───────────────────────────────────────────────── */ .form-group { margin-bottom: 20px; } .form-group label, .form-label { display: block; margin-bottom: 6px; font-size: .82rem; font-weight: 600; color: var(--ink-3); letter-spacing: .01em; } .form-control, .form-select { width: 100%; padding: 11px 14px; background: var(--surface); border: 1px solid var(--border-md); border-radius: var(--radius-sm); font-family: 'DM Sans', sans-serif; font-size: .95rem; color: var(--ink); transition: border-color .18s, box-shadow .18s; appearance: none; -webkit-appearance: none; } .form-control:focus, .form-select:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(232,68,42,.12); } .form-control::placeholder { color: var(--muted); } .form-select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238a8780' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 13px center; padding-right: 36px; cursor: pointer; } .form-select option { background: var(--surface); } .form-select-sm { padding: 6px 32px 6px 11px; font-size: .82rem; border-radius: var(--radius-sm); } .input-group { display: flex; gap: 8px; } .input-group .form-control { flex: 1; } /* Radio */ .radio-group { display: flex; flex-direction: column; gap: 8px; } .radio-option { display: flex; align-items: center; gap: 12px; padding: 12px 14px; background: var(--bg); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; transition: all .17s; } .radio-option:hover { border-color: var(--border-md); background: var(--bg-2); } .radio-option:has(input:checked) { border-color: var(--accent); background: var(--accent-lt); } .radio-option input[type=radio] { width: 17px; height: 17px; accent-color: var(--accent); cursor: pointer; flex-shrink: 0; } .radio-option label { cursor: pointer; font-size: .92rem; color: var(--ink-3); margin: 0; font-weight: 400; letter-spacing: 0; text-transform: none; } /* Alerts */ .alert { display: flex; align-items: flex-start; gap: 10px; padding: 12px 16px; border-radius: var(--radius-sm); margin-bottom: 20px; font-size: .875rem; border-width: 1px; border-style: solid; } .alert i { margin-top: 2px; flex-shrink: 0; } .alert-success { background: var(--success-bg); border-color: rgba(45,122,79,.2); color: var(--success); } .alert-danger { background: var(--accent-lt); border-color: rgba(232,68,42,.2); color: var(--accent-dk); } .alert ul { padding-left: 16px; margin: 0; } /* ── Tables ──────────────────────────────────────────────── */ .table-responsive { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; } .table { width: 100%; border-collapse: collapse; } .table thead tr { background: var(--bg); border-bottom: 1px solid var(--border-md); } .table th { padding: 12px 16px; font-size: .75rem; font-weight: 700; color: var(--muted); letter-spacing: .07em; text-transform: uppercase; text-align: left; white-space: nowrap; } .table td { padding: 14px 16px; border-bottom: 1px solid var(--border); font-size: .9rem; color: var(--ink-3); vertical-align: middle; } .table td small { display: block; color: var(--muted); font-size: .78rem; margin-top: 2px; } .table tbody tr:last-child td { border-bottom: none; } .table tbody tr:hover td { background: var(--bg); } .text-muted { color: var(--muted) !important; } .text-center { text-align: center; } /* ── Status badges ───────────────────────────────────────── */ .status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 6px; font-size: .75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; } .status-badge::before { content: ''; width: 5px; height: 5px; border-radius: 50%; flex-shrink: 0; } .status-new { background: var(--warning-bg); color: var(--warning); } .status-new::before { background: var(--warning); } .status-progress { background: #dbeafe; color: #1d4ed8; } .status-progress::before { background: #1d4ed8; } .status-completed { background: var(--success-bg); color: var(--success); } .status-completed::before { background: var(--success); } /* ── Notifications ───────────────────────────────────────── */ .notification { position: fixed; top: 80px; right: 20px; max-width: 320px; padding: 14px 18px; border-radius: var(--radius); font-size: .875rem; font-weight: 500; z-index: 9999; animation: slideIn .35s cubic-bezier(.4,0,.2,1); box-shadow: var(--shadow-lg); border: 1px solid; } .notification.success { background: var(--surface); border-color: rgba(45,122,79,.25); color: var(--success); } .notification.error { background: var(--surface); border-color: rgba(232,68,42,.25); color: var(--accent-dk); } .notification.info { background: var(--surface); border-color: var(--border-md); color: var(--ink-3); } @keyframes slideIn { from { transform: translateX(110%); opacity: 0; } to { transform: translateX(0); opacity: 1; } } @keyframes fadeOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(110%); opacity: 0; } } /* ── Slider ──────────────────────────────────────────────── */ .slider-container { position: relative; border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 52px; box-shadow: var(--shadow-lg); background: var(--bg-3); } .slider { display: flex; transition: transform .5s cubic-bezier(.4,0,.2,1); } .slide { min-width: 100%; position: relative; } .slide img { width: 100%; height: 480px; object-fit: cover; display: block; } .slide-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 36px 40px 32px; background: linear-gradient(to top, rgba(10,10,10,.78) 0%, rgba(10,10,10,.3) 55%, transparent 100%); } .slide-content h3 { font-family: 'Fraunces', serif; font-size: 1.65rem; font-weight: 800; color: #fff; margin-bottom: 5px; letter-spacing: -.02em; } .slide-content p { color: rgba(255,255,255,.72); font-size: .95rem; margin: 0; } /* Red accent tab on slide */ .slide-content::before { content: ''; position: absolute; left: 40px; bottom: calc(100% - 2px); width: 36px; height: 3px; background: var(--accent); border-radius: 2px 2px 0 0; } .slider-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; background: rgba(255,255,255,.92); border: none; border-radius: 50%; cursor: pointer; color: var(--ink); font-size: .95rem; display: flex; align-items: center; justify-content: center; transition: all .2s; z-index: 10; box-shadow: var(--shadow); } .slider-btn:hover { background: #fff; transform: translateY(-50%) scale(1.08); box-shadow: var(--shadow-lg); } .slider-btn.prev { left: 18px; } .slider-btn.next { right: 18px; } .slider-dots { position: absolute; bottom: 16px; right: 20px; display: flex; gap: 6px; z-index: 10; } .dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.45); cursor: pointer; transition: all .22s; } .dot.active { background: #fff; width: 20px; border-radius: 3px; } /* ── Auth pages ──────────────────────────────────────────── */ .auth-wrap { min-height: 72vh; display: flex; align-items: center; justify-content: center; padding: 40px 0; } .auth-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 44px 48px; width: 100%; max-width: 440px; box-shadow: var(--shadow-lg); } .auth-card h1 { font-size: 1.85rem; margin-bottom: 5px; } .auth-subtitle { color: var(--muted); font-size: .9rem; margin-bottom: 30px; } .auth-footer-text { text-align: center; font-size: .875rem; color: var(--muted); margin-top: 18px; } .divider { height: 1px; background: var(--border); margin: 24px 0; } /* ── Pagination ──────────────────────────────────────────── */ .pagination { display: flex; gap: 4px; list-style: none; align-items: center; } .page-link { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--ink-3); font-size: .875rem; font-weight: 500; transition: all .17s; cursor: pointer; } .page-link:hover { border-color: var(--border-md); background: var(--bg-2); color: var(--ink); } .page-item.active .page-link { background: var(--accent); border-color: var(--accent); color: #fff; } .page-item.disabled .page-link { opacity: .4; pointer-events: none; } /* ── Grid utils ──────────────────────────────────────────── */ .row { display: flex; flex-wrap: wrap; margin: 0 -10px; } .row > * { padding: 0 10px; } .col-md-3 { flex: 0 0 25%; max-width: 25%; } .col-md-4 { flex: 0 0 33.333%; max-width: 33.333%; } .col-md-6 { flex: 0 0 50%; max-width: 50%; } .col-md-8 { flex: 0 0 66.666%; max-width: 66.666%; } .col-lg-4 { flex: 0 0 33.333%; max-width: 33.333%; } .col-lg-5 { flex: 0 0 41.666%; max-width: 41.666%; } .col-12 { flex: 0 0 100%; max-width: 100%; } .mb-3 { margin-bottom: 16px; } .mb-4 { margin-bottom: 24px; } .mt-2 { margin-top: 10px; } .mt-3 { margin-top: 16px; } .mt-4 { margin-top: 24px; } .mt-5 { margin-top: 44px; } .h-100 { height: 100%; } .d-flex { display: flex; } .gap-2 { gap: 8px; } .align-items-end { align-items: flex-end; } .align-items-center { align-items: center; } .justify-content-center { justify-content: center; } /* ── Footer ──────────────────────────────────────────────── */ .footer { background: var(--ink); padding: 32px 0; text-align: center; margin-top: auto; } .footer p { color: rgba(255,255,255,.4); font-size: .85rem; } .footer p:last-child { font-size: .78rem; margin-top: 4px; opacity: .6; } /* ── Responsive ──────────────────────────────────────────── */ @media (max-width: 768px) { .col-md-3, .col-md-4, .col-md-6, .col-md-8, .col-lg-4, .col-lg-5 { flex: 0 0 100%; max-width: 100%; } .header-content { height: auto; padding: 12px 0; flex-wrap: wrap; gap: 10px; } .nav-menu { flex-wrap: wrap; gap: 2px; } .nav-menu a { font-size: .82rem; padding: 6px 10px; } .slide img { height: 280px; } .slide-content { padding: 20px 22px 18px; } .slide-content h3 { font-size: 1.2rem; } .slide-content::before { left: 22px; } .about-section { padding: 28px 24px; } .auth-card { padding: 28px 22px; } .main-content { padding: 28px 0 60px; } } @media (max-width: 480px) { .container { padding: 0 16px; } h1 { font-size: 1.65rem; } .card { padding: 18px; } .btn { padding: 10px 18px; font-size: .875rem; } .about-section::after, .about-section::before { display: none; } }