.field { display: flex; flex-direction: column; gap: 10px; } .fieldHeader { display: flex; flex-direction: column; gap: 4px; } .fieldLabel { color: #fff; font-size: 13px; font-weight: 600; letter-spacing: 0.01em; } .fieldHelper { color: rgba(255, 255, 255, 0.45); font-size: 12px; line-height: 1.45; } .fieldControl { display: flex; flex-direction: column; } .textInput, .textArea { width: 100%; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; background: rgba(255, 255, 255, 0.05); color: #fff; font: inherit; font-size: 14px; line-height: 1.5; padding: 12px 14px; transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; } .textInput::placeholder, .textArea::placeholder { color: rgba(255, 255, 255, 0.38); } .textInput:hover, .textArea:hover { border-color: rgba(255, 255, 255, 0.16); background: rgba(255, 255, 255, 0.06); } .textInput:focus, .textArea:focus { outline: none; border-color: rgba(var(--accent-light-rgb), 0.55); background: rgba(255, 255, 255, 0.07); box-shadow: 0 0 0 3px rgba(var(--accent-light-rgb), 0.12); } .textArea { min-height: 128px; resize: vertical; } .select { width: auto; min-width: 130px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.035)), rgba(255, 255, 255, 0.05); background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.035)), rgba(255, 255, 255, 0.05), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='%23888'%3E%3Cpath d='M0 0l5 6 5-6z'/%3E%3C/svg%3E"); background-repeat: no-repeat, no-repeat, no-repeat; background-position: 0 0, 0 0, right 12px center; background-size: auto, auto, 10px 6px; color: #fff; font: inherit; font-size: 13px; line-height: 1.5; padding: 8px 32px 8px 12px; transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; appearance: none; -webkit-appearance: none; color-scheme: dark; cursor: pointer; } .select:hover { border-color: rgba(255, 255, 255, 0.16); background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.045)), rgba(255, 255, 255, 0.06); } .select:focus { outline: none; border-color: rgba(var(--accent-light-rgb), 0.55); background: linear-gradient(180deg, rgba(255, 255, 255, 0.08), rgba(255, 255, 255, 0.05)), rgba(255, 255, 255, 0.07); box-shadow: 0 0 0 3px rgba(var(--accent-light-rgb), 0.12); } .select option, .select optgroup { background: #1a1a2e; color: #fff; } .checkbox { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; flex-shrink: 0; box-sizing: border-box; margin: 0; border: 2px solid rgba(255, 255, 255, 0.2); border-radius: 4px; background: transparent; color: #000; cursor: pointer; transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease; color-scheme: dark; } .checkbox[data-checked] { border-color: rgb(var(--accent-light-rgb)); background: rgb(var(--accent-light-rgb)); } .checkbox[data-focused] { outline: none; box-shadow: 0 0 0 3px rgba(var(--accent-light-rgb), 0.14); } .checkboxIndicator { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; opacity: 0; transition: opacity 0.18s ease; } .checkbox[data-checked] .checkboxIndicator { opacity: 1; } .checkboxIcon { color: #000; font-size: 12px; font-weight: 700; line-height: 1; transform: translateY(-0.5px) scaleX(1.18); } .rangeRoot { display: inline-flex; flex: 0 0 160px; width: 160px; min-width: 160px; color-scheme: dark; } .rangeControl { display: flex; align-items: center; width: 100%; min-height: 28px; cursor: pointer; } .rangeTrack { position: relative; width: 100%; height: 8px; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 999px; background: rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.04); } .rangeIndicator { height: 100%; border-radius: inherit; background: linear-gradient( 90deg, rgba(var(--accent-rgb), 0.95), rgba(var(--accent-light-rgb), 0.95) ); } .rangeThumb { width: 16px; height: 16px; border: 1px solid rgba(255, 255, 255, 0.24); border-radius: 50%; background: radial-gradient(circle at 30% 28%, rgba(255, 255, 255, 0.3), transparent 46%), rgb(var(--accent-light-rgb)); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.28); transition: transform 0.18s ease, box-shadow 0.18s ease; } .rangeThumb:hover { transform: scale(1.04); } .rangeThumb:focus-visible { box-shadow: 0 0 0 4px rgba(var(--accent-light-rgb), 0.14), 0 2px 8px rgba(0, 0, 0, 0.28); } .optionCardGroup { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; } .optionCard { display: flex; align-items: flex-start; gap: 12px; width: 100%; padding: 14px 16px; text-align: left; border-radius: 14px; border: 1px solid rgba(255, 255, 255, 0.08); background: linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.03)), rgba(255, 255, 255, 0.03); color: #fff; cursor: pointer; transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease; } .optionCard:hover { transform: translateY(-1px); border-color: rgba(255, 255, 255, 0.14); background: linear-gradient(180deg, rgba(255, 255, 255, 0.075), rgba(255, 255, 255, 0.04)), rgba(255, 255, 255, 0.04); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.22); } .optionCardSelected { border-color: rgba(var(--accent-light-rgb), 0.45); background: linear-gradient(180deg, rgba(var(--accent-rgb), 0.18), rgba(255, 255, 255, 0.04)), rgba(255, 255, 255, 0.05); box-shadow: 0 0 0 1px rgba(var(--accent-light-rgb), 0.1), 0 14px 32px rgba(0, 0, 0, 0.26); } .optionCardIcon { flex-shrink: 0; font-size: 18px; line-height: 1; margin-top: 1px; } .optionCardBody { display: flex; min-width: 0; flex: 1; flex-direction: column; gap: 5px; } .optionCardTitle { font-size: 14px; font-weight: 600; line-height: 1.3; } .optionCardDescription { color: rgba(255, 255, 255, 0.48); font-size: 12px; line-height: 1.45; } .optionButtonGroup { display: flex; flex-wrap: wrap; gap: 8px; } .optionButton { border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 999px; background: rgba(255, 255, 255, 0.05); color: #fff; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; min-width: 80px; padding: 10px 14px; transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease; } .optionButton:hover { transform: translateY(-1px); border-color: rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.08); } .optionButtonSelected { border-color: rgba(var(--accent-light-rgb), 0.5); background: rgba(var(--accent-rgb), 0.18); box-shadow: 0 0 0 1px rgba(var(--accent-light-rgb), 0.08); } .button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 10px; background: rgba(255, 255, 255, 0.05); color: #fff; cursor: pointer; font: inherit; font-size: 13px; font-weight: 600; line-height: 1.2; min-height: 36px; padding: 8px 12px; transition: transform 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, color 0.18s ease; } .button:hover:not(:disabled) { transform: translateY(-1px); border-color: rgba(255, 255, 255, 0.18); background: rgba(255, 255, 255, 0.08); } .button:focus-visible { outline: none; border-color: rgba(var(--accent-light-rgb), 0.55); box-shadow: 0 0 0 3px rgba(var(--accent-light-rgb), 0.12); } .button:disabled { opacity: 0.55; cursor: not-allowed; transform: none; } .formError { color: #ff8d8d; font-size: 12px; line-height: 1.45; } .formActions { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; }