/* ============================================================ Тема Redmine — ТСН Бризе Стиль: современный минимализм, природная палитра Версия: 1.0 | 2026 ============================================================ */ /* --- Переменные палитры ------------------------------------ */ :root { --brize-dark: #1d3a1d; /* шапка, заголовки */ --brize-mid: #2d5a2d; /* акцент, кнопки */ --brize-accent: #4a8a44; /* ссылки, иконки */ --brize-light: #eef1eb; /* фон сайдбара, тулбара */ --brize-bg: #f5f7f4; /* фон страницы */ --brize-border: #d0d8cc; /* бордеры */ --brize-text: #1a2e1a; /* основной текст */ --brize-muted: #6a9260; /* вспомогательный текст */ --brize-header-fg: #a8c8a0; /* текст в шапке */ --brize-header-link:#7aaa72; /* ссылки в шапке */ --brize-urgent: #c05028; /* аварийное */ } /* --- Шрифты ------------------------------------------------ */ @import url('https://fonts.googleapis.com/css2?family=Geologica:wght@300;400;500&family=Unbounded:wght@400;500&display=swap'); body { font-family: 'Geologica', -apple-system, sans-serif; font-size: 13px; color: var(--brize-text); background: var(--brize-bg); } /* --- Шапка (header) --------------------------------------- */ #header { background: var(--brize-dark) !important; border-bottom: none !important; box-shadow: none !important; padding: 0 24px; height: 52px; display: flex; align-items: center; } #header h1, #header h1 a { font-family: 'Unbounded', sans-serif !important; font-size: 13px !important; font-weight: 400 !important; color: var(--brize-header-fg) !important; letter-spacing: .04em; text-decoration: none; } #header h1 a:hover { color: #c8e8c0 !important; } /* Навигация в шапке */ #navigation { background: transparent !important; border: none !important; } #navigation ul li a, #navigation ul li a:visited { color: var(--brize-header-link) !important; font-family: 'Geologica', sans-serif; font-size: 12px; padding: 6px 10px; border-radius: 5px; transition: background .15s, color .15s; } #navigation ul li a:hover, #navigation ul li.selected a { background: rgba(120, 180, 110, .15) !important; color: #c8e8c0 !important; } /* Пользовательское меню */ #loggedas, #account { color: var(--brize-header-link) !important; font-size: 12px; } #account a, #loggedas a { color: var(--brize-header-link) !important; } /* Поиск в шапке */ #header #quick-search input { background: rgba(255,255,255,.08) !important; border: 0.5px solid rgba(255,255,255,.15) !important; color: #c8e8c0 !important; border-radius: 6px; font-size: 12px; } #header #quick-search input::placeholder { color: rgba(168, 200, 160, .5); } /* --- Основной layout -------------------------------------- */ #main { background: var(--brize-bg); } #sidebar { background: var(--brize-light); border-right: 0.5px solid var(--brize-border); } #content { background: var(--brize-bg); } /* --- Сайдбар ---------------------------------------------- */ #sidebar h3, #sidebar h4 { font-family: 'Geologica', sans-serif; font-size: 10px; font-weight: 500; color: var(--brize-muted); text-transform: uppercase; letter-spacing: .08em; border-bottom: none; padding-bottom: 4px; margin-bottom: 4px; } #sidebar ul li a { color: var(--brize-accent) !important; font-size: 12px; padding: 4px 8px; border-radius: 5px; display: block; } #sidebar ul li a:hover { background: rgba(60, 110, 55, .08); color: var(--brize-mid) !important; } /* --- Тулбар над контентом --------------------------------- */ #main-menu, div.contextual { background: var(--brize-light); border-bottom: 0.5px solid var(--brize-border); } /* --- Заголовки страниц ------------------------------------ */ h1, h2 { font-family: 'Unbounded', sans-serif !important; font-weight: 400 !important; color: var(--brize-dark) !important; letter-spacing: -.01em; } h1 { font-size: 18px !important; margin-bottom: 16px; } h2 { font-size: 14px !important; margin-bottom: 10px; } h3 { font-size: 13px; font-weight: 500; color: var(--brize-dark); } /* --- Ссылки ----------------------------------------------- */ a, a:visited { color: var(--brize-accent) !important; text-decoration: none; } a:hover { color: var(--brize-mid) !important; text-decoration: underline; } /* --- Кнопки ----------------------------------------------- */ .button, input[type=submit], input[type=button], a.button { background: var(--brize-mid) !important; color: #c8e8c0 !important; border: none !important; border-radius: 6px !important; font-family: 'Geologica', sans-serif !important; font-size: 12px !important; font-weight: 400 !important; padding: 6px 14px !important; cursor: pointer; transition: background .15s; } .button:hover, input[type=submit]:hover, a.button:hover { background: var(--brize-dark) !important; color: #c8e8c0 !important; } /* Второстепенные кнопки */ a.icon, .icon-only { color: var(--brize-accent) !important; } /* --- Таблица задач ---------------------------------------- */ table.list { border-collapse: collapse; width: 100%; background: #fff; border: 0.5px solid var(--brize-border); border-radius: 8px; overflow: hidden; } table.list thead th { background: var(--brize-light) !important; color: var(--brize-muted) !important; font-size: 10px; font-weight: 500; text-transform: uppercase; letter-spacing: .05em; border-bottom: 0.5px solid var(--brize-border) !important; padding: 8px 12px; } table.list thead th a { color: var(--brize-muted) !important; } table.list tbody tr td { padding: 8px 12px; border-top: 0.5px solid #e8ede4; font-size: 12px; color: var(--brize-text); } table.list tbody tr:hover td { background: #f8faf6; } table.list tbody tr.odd td { background: transparent; } table.list tbody tr.even td { background: #fafcf8; } table.list tbody tr.even:hover td, table.list tbody tr.odd:hover td { background: #f2f6ef; } /* --- Статусы задач (badges) ------------------------------- */ .issue-status-label, span.status { display: inline-block; font-size: 10px; font-weight: 500; padding: 2px 8px; border-radius: 10px; } /* Настрой под свои реальные имена статусов */ .status-new, [class*="New"] { background: #e8ede4; color: #3d5e38; } .status-in-progress, [class*="In Progress"] { background: #ddeef8; color: #1a5080; } .status-resolved, [class*="Resolved"] { background: #d8ecd0; color: #2a5824; } .status-closed, [class*="Closed"] { background: #f0ede8; color: #5a5450; } .status-urgent { background: #fde8e0; color: #8a3020; } /* --- Приоритеты ------------------------------------------- */ .priority-urgent, .priority-immediate { color: var(--brize-urgent) !important; font-weight: 500; } /* --- Блок деталей задачи ---------------------------------- */ #issue-detail, .issue.details { background: #fff; border: 0.5px solid var(--brize-border); border-radius: 8px; padding: 20px 24px; } .issue.details h3 { border-bottom: 0.5px solid var(--brize-border); padding-bottom: 8px; margin-bottom: 12px; } /* Атрибуты задачи */ table.attributes th { color: var(--brize-muted); font-size: 11px; font-weight: 500; text-align: right; padding-right: 12px; white-space: nowrap; } table.attributes td { font-size: 12px; color: var(--brize-text); } /* --- Журнал (комментарии) --------------------------------- */ div.journal { background: #fff; border: 0.5px solid var(--brize-border); border-radius: 8px; margin-bottom: 10px; overflow: hidden; } div.journal h4 { background: var(--brize-light); padding: 8px 14px; font-size: 11px; font-weight: 500; color: var(--brize-muted); border-bottom: 0.5px solid var(--brize-border); margin: 0; } div.journal .wiki { padding: 12px 14px; font-size: 13px; line-height: 1.6; } /* --- Wiki ------------------------------------------------- */ #wiki { background: #fff; border: 0.5px solid var(--brize-border); border-radius: 8px; padding: 24px; line-height: 1.7; } #wiki h1, #wiki h2, #wiki h3 { border-bottom: 0.5px solid var(--brize-border); padding-bottom: 6px; } #wiki table { border-collapse: collapse; width: 100%; } #wiki table th { background: var(--brize-light); padding: 6px 10px; font-size: 12px; text-align: left; border: 0.5px solid var(--brize-border); } #wiki table td { padding: 6px 10px; font-size: 12px; border: 0.5px solid var(--brize-border); } /* --- Формы ------------------------------------------------- */ input[type=text], input[type=email], input[type=password], textarea, select { font-family: 'Geologica', sans-serif !important; font-size: 13px !important; border: 0.5px solid var(--brize-border) !important; border-radius: 6px !important; padding: 6px 10px !important; background: #fff !important; color: var(--brize-text) !important; transition: border-color .15s; } input[type=text]:focus, textarea:focus, select:focus { border-color: var(--brize-accent) !important; outline: none !important; box-shadow: 0 0 0 3px rgba(74, 138, 68, .12) !important; } /* --- Флеш-уведомления ------------------------------------- */ div#flash_notice, p.notice { background: #d8ecd0; color: #1d3a1d; border: 0.5px solid #b0d0a8; border-radius: 6px; padding: 10px 14px; font-size: 12px; } div#flash_error, p.error { background: #fde8e0; color: #6a2010; border: 0.5px solid #f0b8a0; border-radius: 6px; padding: 10px 14px; font-size: 12px; } div#flash_warning { background: #fdf3d8; color: #5a3c08; border: 0.5px solid #f0d898; border-radius: 6px; padding: 10px 14px; font-size: 12px; } /* --- Пагинация -------------------------------------------- */ p.pagination { font-size: 12px; color: var(--brize-muted); } p.pagination a { color: var(--brize-accent) !important; border: 0.5px solid var(--brize-border); padding: 3px 8px; border-radius: 4px; } p.pagination a:hover { background: var(--brize-light); } p.pagination span.current { background: var(--brize-mid); color: #c8e8c0; padding: 3px 8px; border-radius: 4px; } /* --- Стартовая страница / Welcome block ------------------- */ #welcome { background: var(--brize-dark); border-radius: 8px; padding: 20px 24px; margin-bottom: 20px; color: var(--brize-header-fg); } #welcome h2 { font-family: 'Unbounded', sans-serif !important; font-size: 15px !important; color: #c8e8c0 !important; margin-bottom: 6px; } #welcome p { color: var(--brize-header-link); font-size: 12px; } /* --- Хлебные крошки --------------------------------------- */ p#breadcrumb, div.breadcrumb { font-size: 11px; color: var(--brize-muted); padding: 8px 0; } div.breadcrumb a { color: var(--brize-accent) !important; } /* --- Табы (вкладки) --------------------------------------- */ div.tabs ul li a { color: var(--brize-accent) !important; border-bottom: 2px solid transparent; font-size: 12px; padding: 6px 12px; transition: border-color .15s; } div.tabs ul li a:hover, div.tabs ul li.selected a { border-bottom-color: var(--brize-mid); color: var(--brize-mid) !important; background: transparent !important; } /* --- Gantt / Календарь ------------------------------------ */ .gantt_hdr { background: var(--brize-light) !important; color: var(--brize-muted) !important; font-size: 11px; } /* --- Скроллбар (webkit) ----------------------------------- */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: var(--brize-bg); } ::-webkit-scrollbar-thumb { background: #b8c8b0; border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: var(--brize-accent); } /* --- Футер ------------------------------------------------ */ #footer { background: var(--brize-dark); color: #5a7a54; font-size: 11px; text-align: center; padding: 12px; border-top: none; } #footer a { color: #6a9a64 !important; }