caps_enhancer/css/options.css
2026-03-23 14:02:46 +03:00

442 lines
7.6 KiB
CSS
Raw Permalink 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.

/* ==================== СТИЛИ СТРАНИЦЫ НАСТРОЕК ==================== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
min-height: 100vh;
padding: 20px;
}
.container {
max-width: 900px;
margin: 0 auto;
}
header {
background: white;
padding: 20px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
margin-bottom: 20px;
}
.header-content {
display: flex;
align-items: center;
gap: 20px;
justify-content: center;
}
.header-logo {
width: 64px;
height: 64px;
object-fit: contain;
}
header h1 {
color: #333;
font-size: 32px;
margin-bottom: 10px;
text-align: left;
}
.subtitle {
color: #666;
font-size: 16px;
text-align: left;
}
.content {
background: #f4f5f8;
padding: 20px 24px 24px;
border-radius: 12px;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
.settings-grid {
display: grid;
grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
gap: 20px;
}
.settings-col.secondary {
align-self: flex-start;
}
.settings-section {
margin-bottom: 18px;
background: #ffffff;
border-radius: 10px;
border: 1px solid #e2e4ea;
padding: 12px 14px 10px;
box-shadow: 0 1px 3px rgba(15, 23, 42, 0.08);
}
.settings-section h2 {
color: #333;
font-size: 18px;
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 10px;
}
.settings-section h3 {
color: #555;
font-size: 16px;
margin-bottom: 15px;
margin-top: 10px;
}
.setting-item {
margin-bottom: 14px;
}
.setting-item label {
display: block;
margin-bottom: 8px;
}
.label-text {
display: block;
font-weight: 600;
color: #333;
font-size: 14px;
margin-bottom: 4px;
}
.label-description {
display: block;
font-size: 12px;
color: #888;
margin-bottom: 8px;
}
input[type="text"],
input[type="number"],
select {
width: 100%;
padding: 8px 10px;
border: 2px solid #e0e0e0;
border-radius: 8px;
font-size: 15px;
transition: all 0.3s ease;
font-family: inherit;
}
input[type="text"]:focus,
input[type="number"]:focus,
select:focus {
outline: none;
border-color: #667eea;
box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}
/* Поле пароля: text + маскировка точками (без type=password из-за особенностей рендеринга) */
.password-field {
-webkit-text-security: disc;
text-security: disc;
}
select {
cursor: pointer;
background: white;
}
/* Switch toggle */
.switch-label {
display: flex;
justify-content: space-between;
align-items: center;
}
.switch-label .label-text,
.switch-label .label-description {
margin-bottom: 0;
}
.switch {
position: relative;
display: inline-block;
width: 44px;
height: 24px;
flex-shrink: 0;
}
.switch input {
opacity: 0;
width: 0;
height: 0;
}
.slider {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #ccc;
transition: 0.4s;
border-radius: 24px;
}
.slider:before {
position: absolute;
content: "";
height: 18px;
width: 18px;
left: 3px;
bottom: 3px;
background-color: white;
transition: 0.4s;
border-radius: 50%;
}
input:checked + .slider {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
input:checked + .slider:before {
transform: translateX(20px);
}
/* Компактные inline-элементы (label + input в одну линию) */
.setting-item.inline {
display: flex;
align-items: center;
gap: 10px;
}
.setting-item.inline label {
margin-bottom: 0;
}
/* Подсказки под полями (например, под паролем) */
.hint {
display: block;
margin-top: 4px;
font-size: 11px;
color: #888;
}
/* Sub settings */
.sub-settings {
margin-top: 12px;
padding: 10px 12px;
background: #f8f9fa;
border-radius: 8px;
}
.sub-settings.disabled {
opacity: 0.5;
pointer-events: none;
}
/* Список модулей отладки: по умолчанию скрыт (нет .expanded при загрузке),
показывается только при включённой отладке — без анимации при первой отрисовке */
#debug-modules {
max-height: 0;
overflow: hidden;
margin-top: 0;
padding-top: 0;
padding-bottom: 0;
border: none;
}
#debug-modules.expanded {
max-height: 600px;
margin-top: 12px;
padding: 10px 12px;
background: #f8f9fa;
border: 1px solid #e2e4ea;
border-radius: 8px;
transition: max-height 0.25s ease;
}
.setting-item-compact {
margin-bottom: 12px;
}
.setting-item-compact label {
display: flex;
align-items: center;
gap: 10px;
cursor: pointer;
padding: 8px;
border-radius: 6px;
transition: background 0.2s ease;
}
.setting-item-compact label:hover {
background: rgba(102, 126, 234, 0.1);
}
.setting-item-compact input[type="checkbox"] {
width: 20px;
height: 20px;
cursor: pointer;
}
.setting-item-compact span {
font-size: 15px;
color: #333;
}
/* Buttons */
.actions {
display: flex;
gap: 10px;
margin-top: 16px;
margin-bottom: 4px;
}
.btn {
flex: 1;
padding: 10px 18px;
border: none;
border-radius: 8px;
font-size: 16px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s ease;
font-family: inherit;
}
.btn-primary {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}
.btn-secondary {
background: #f0f0f0;
color: #333;
}
.btn-secondary:hover {
background: #e0e0e0;
transform: translateY(-2px);
}
/* Status message */
.status {
padding: 15px 20px;
border-radius: 8px;
margin-bottom: 20px;
font-weight: 500;
text-align: center;
animation: slideIn 0.3s ease;
}
@keyframes slideIn {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.status.success {
background: #d4edda;
color: #155724;
border: 1px solid #c3e6cb;
}
.status.error {
background: #f8d7da;
color: #721c24;
border: 1px solid #f5c6cb;
}
.status.hidden {
display: none;
}
/* Info section */
.info-section {
margin-top: 10px;
padding: 14px 16px;
background: #f8f9fa;
border-radius: 8px;
border-left: 4px solid #667eea;
}
.info-section h3 {
color: #333;
margin-bottom: 15px;
}
.info-section p {
color: #666;
line-height: 1.4;
margin-bottom: 4px;
}
.info-section p:last-child {
margin-bottom: 0;
margin-top: 12px;
font-style: italic;
}
/* Responsive */
@media (max-width: 768px) {
.container {
padding: 10px;
}
header {
padding: 20px;
}
.header-content {
flex-direction: column;
gap: 15px;
}
.header-logo {
width: 48px;
height: 48px;
}
header h1 {
font-size: 24px;
text-align: center;
}
.subtitle {
text-align: center;
}
.content {
padding: 16px;
}
.actions {
flex-direction: column;
}
.switch-label {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
}
/* Hidden elements */
.hidden {
display: none;
}