/* Settings Modal Styles */ /* Field Styles */ .field { display: grid; grid-template-columns: 55% 1fr; align-items: center; margin-block: 1rem; padding: var(--spacing-xs) 0; } .field.field-full { grid-template-columns: 1fr; } /* Field Labels */ .field-label { display: flex; flex-direction: column; padding-right: 0.5em; } .field-title { font-weight: bold; color: var(--color-primary); } .field-description { color: var(--color-text); font-size: 0.875rem; opacity: 0.8; margin: 0.25rem 0 0.5rem 0; } /* Field Controls */ .field-control { width: 100%; display: flex; align-items: center; } /* Input Styles */ input[type="text"], input[type="password"], input[type="number"], textarea, select { width: 100%; padding: 0.5rem; border: 1px solid var(--color-border); border-radius: 0.25rem; background-color: var(--color-background); color: var(--color-text); font-family: "Rubik", Arial, Helvetica, sans-serif; outline: none; transition: all 0.3s ease; } textarea { min-height: 100px; font-family: 'Roboto Mono', monospace; scroll-behavior: smooth; resize: none; background-clip: border-box; } input[type="text"]:focus, input[type="number"]:focus, input[type="password"]:focus, textarea:focus { background-color: var(--color-background); filter: brightness(1.2); } .light-mode input[type="text"]:focus, .light-mode input[type="number"]:focus, .light-mode input[type="password"]:focus, .light-mode textarea:focus { filter: brightness(1.1); } /* Button Disabled State */ .btn-disabled, .btn-ok.btn-disabled { opacity: 0.5; cursor: not-allowed; pointer-events: none; } /* Toggle Switch Styles */ .toggle { position: relative; display: inline-block; width: 60px; height: 34px; } .toggle input { opacity: 0; width: 0; height: 0; } .toggler { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-color: #ccc; border-radius: 34px; cursor: pointer; transition: 0.4s; } .toggler:before { content: ""; position: absolute; height: 26px; width: 26px; left: 4px; bottom: 4px; background-color: white; border-radius: 50%; transition: 0.4s; } input:checked + .toggler { background-color: #2196f3; } input:checked + .toggler:before { transform: translateX(26px); } /* Select Styles */ select { cursor: pointer; color-scheme: dark; } .light-mode select { color-scheme: light; } select:disabled { background-color: var(--color-background); cursor: not-allowed; } /* Settings modal shell */ .modal-inner.settings-modal { right: auto; bottom: auto; z-index: 2; display: flex; align-items: stretch; justify-content: flex-start; width: min(92vw, 1180px); height: min(88vh, 900px); padding: 0; overflow: hidden; background: color-mix(in srgb, var(--color-background) 94%, #000 6%); } .modal-inner.settings-modal .modal-scroll, .modal-inner.settings-modal .modal-bd, .modal-inner.settings-modal .modal-bd > div[x-data], .modal-inner.settings-modal .modal-bd > div[x-data] > div { display: flex; flex: 1 1 auto; width: 100%; min-width: 0; min-height: 0; overflow: hidden; } .modal-inner.settings-modal .modal-scroll { padding: 0; } .modal-inner.settings-modal .modal-header { min-height: 48px; } .settings-content { display: grid; grid-template-columns: 224px minmax(0, 1fr); flex: 1 1 auto; width: 100%; min-width: 0; min-height: 0; overflow: hidden; } .settings-tabs-container { position: sticky; top: 0; align-self: stretch; z-index: 2; min-width: 0; min-height: 0; height: 100%; padding: 10px 8px; overflow: hidden; border-right: 1px solid color-mix(in srgb, var(--color-border) 58%, transparent); background: color-mix(in srgb, var(--color-panel) 44%, transparent); } .settings-tabs { display: flex; flex-direction: column; gap: 4px; width: 100%; min-width: 0; min-height: 0; max-height: 100%; overflow-y: auto; } .settings-nav-group { display: flex; flex-direction: column; gap: 3px; min-width: 0; } .settings-tab { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; align-items: center; gap: 8px; width: 100%; min-height: 38px; padding: 0 10px; border: 0; border-radius: 0; appearance: none; background: transparent; color: var(--color-text); cursor: pointer; font: inherit; font-size: 0.83rem; font-weight: 560; line-height: 1.1; opacity: 0.68; text-align: left; text-decoration: none; transition: color 0.16s ease, opacity 0.16s ease; } .settings-tab-meta { display: inline-flex; align-items: center; justify-content: flex-end; gap: 6px; min-width: 18px; } .settings-tab-chevron { transform: rotate(-90deg); transition: transform 0.16s ease; } .settings-nav-group-active .settings-tab-chevron { transform: rotate(0deg); } .settings-tab-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .settings-tab .material-symbols-outlined, .settings-section-link .material-symbols-outlined { color: var(--color-text-muted); font-size: 18px; } .settings-tab:hover, .settings-tab.active, .settings-section-link:hover, .settings-section-link.active { opacity: 1; } .settings-tab.active, .settings-section-link.active { color: var(--color-text); font-weight: 750; } .settings-tab.active .material-symbols-outlined, .settings-section-link.active .material-symbols-outlined { color: var(--color-primary); } .settings-tab-attention { opacity: 1; } .settings-tab-attention .material-symbols-outlined { color: #f2bf4b; } .settings-attention-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 999px; background: #f2bf4b; box-shadow: 0 0 0 3px color-mix(in srgb, #f2bf4b 18%, transparent); } .settings-section-list { display: flex; flex-direction: column; gap: 2px; min-width: 0; margin: 0 0 6px 30px; padding-left: 10px; border-left: 1px solid color-mix(in srgb, var(--color-border) 54%, transparent); } .settings-section-link { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: 7px; min-height: 32px; padding: 0 9px; border: 0; border-radius: 0; background: transparent; color: var(--color-text); font-size: 0.78rem; font-weight: 560; line-height: 1.12; opacity: 0.72; text-align: left; text-decoration: none; transition: color 0.16s ease, opacity 0.16s ease; } .settings-section-link .material-symbols-outlined { font-size: 17px; } .settings-section-link:hover, .settings-section-link.active { opacity: 1; } .settings-pane { min-width: 0; min-height: 0; overflow: auto; padding: 18px 22px 28px; scroll-behavior: smooth; } .settings-tab-panel, .settings-tab-panel > x-component, .settings-tab-panel > x-component > div[x-data] { min-width: 0; } .settings-pane nav { display: none; } .settings-pane .section { display: block; width: 100%; min-width: 0; margin: 0 0 10px; padding: 26px 0 30px; scroll-margin-top: 12px; overflow: visible; border: 0; border-top: 1px solid color-mix(in srgb, var(--color-border) 64%, transparent); border-radius: 0; box-sizing: border-box; } .settings-tab-panel > x-component > div[x-data] > div > .section:first-of-type, .settings-tab-panel > x-component > div[x-data] > div > nav + .section { padding-top: 0; border-top: 0; } .settings-pane .section-title { margin: 0 0 6px; padding: 0; border: 0; color: color-mix(in srgb, var(--color-text) 88%, var(--color-primary)); font-size: 1.05rem; font-weight: 800; } .settings-pane .section-title.settings-update-title-attention { color: #f2bf4b; } .settings-pane .section-description { max-width: 72ch; margin: 0 0 18px; color: var(--color-text); font-size: 0.92rem; opacity: 0.78; line-height: 1.42; } .modal-inner.settings-modal .field { grid-template-columns: minmax(220px, 0.9fr) minmax(260px, 1fr); gap: 20px; margin-block: 0; padding: 12px 0; } .modal-inner.settings-modal .field + .field { border-top: 1px solid color-mix(in srgb, var(--color-border) 24%, transparent); } .modal-inner.settings-modal .field-title { color: color-mix(in srgb, var(--color-text) 78%, var(--color-primary)); font-weight: 800; } .modal-inner.settings-modal .field-description { margin-bottom: 0; color: var(--color-text); opacity: 0.78; line-height: 1.28; } .modal-inner.settings-modal .field-control { gap: 8px; } .modal-inner.settings-modal input[type="text"], .modal-inner.settings-modal input[type="password"], .modal-inner.settings-modal input[type="number"], .modal-inner.settings-modal textarea, .modal-inner.settings-modal select { border-color: color-mix(in srgb, var(--color-border) 70%, transparent); border-radius: 7px; background: color-mix(in srgb, var(--color-background) 72%, transparent); } .settings-advanced-section { margin-top: 8px; } .settings-advanced-toggle { display: inline-flex; align-items: center; gap: 5px; min-height: 30px; padding: 3px 0; border: 0; background: transparent; color: var(--color-text); opacity: 0.68; cursor: pointer; font: inherit; font-size: 0.79rem; font-weight: 650; text-align: left; } .settings-advanced-toggle:hover { opacity: 1; } .settings-advanced-toggle-icon { font-size: 17px; transition: transform 0.15s ease; } .settings-advanced-body { margin-top: 6px; padding-top: 6px; } .settings-inline-button { flex: 0 0 auto; } .settings-subsection-title { margin: 18px 0 4px; color: var(--color-primary); font-size: 0.94rem; font-weight: 750; } .settings-subsection-description { margin: 0 0 8px; color: var(--color-text); font-size: 0.85rem; line-height: 1.35; opacity: 0.72; } .settings-update-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 4px 0 16px; padding: 14px; border: 1px solid color-mix(in srgb, var(--color-border) 72%, transparent); border-radius: 7px; background: color-mix(in srgb, var(--color-panel) 60%, transparent); } .settings-update-card-attention { border-color: color-mix(in srgb, #f2bf4b 44%, var(--color-border)); background: linear-gradient( 120deg, color-mix(in srgb, #f2bf4b 16%, transparent), transparent 58% ), color-mix(in srgb, var(--color-panel) 72%, transparent); } .settings-update-card-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 7px; background: color-mix(in srgb, var(--color-primary) 15%, transparent); color: color-mix(in srgb, var(--color-text) 82%, var(--color-primary)); } .settings-update-card-attention .settings-update-card-icon { background: color-mix(in srgb, #f2bf4b 18%, transparent); color: #f2bf4b; } .settings-update-card-copy { min-width: 0; } .settings-update-card-title { margin-bottom: 4px; color: color-mix(in srgb, var(--color-text) 88%, var(--color-primary)); font-size: 0.96rem; font-weight: 800; } .settings-update-card-attention .settings-update-card-title { color: #f2bf4b; } .settings-update-card-message { color: var(--color-text); font-size: 0.86rem; line-height: 1.35; opacity: 0.78; } .settings-update-card-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 10px; } .settings-update-card-actions { display: flex; align-items: center; gap: 8px; } .settings-update-card-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 0 9px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--color-border) 70%, transparent); color: var(--color-text); background: color-mix(in srgb, var(--color-background) 70%, transparent); font-size: 0.7rem; font-weight: 800; line-height: 1; text-transform: uppercase; white-space: nowrap; } .settings-update-card-attention .settings-update-card-badge { border-color: color-mix(in srgb, #f2bf4b 48%, var(--color-border)); color: color-mix(in srgb, #f2bf4b 84%, var(--color-text)); background: color-mix(in srgb, #f2bf4b 12%, transparent); } .settings-pane::-webkit-scrollbar { width: 6px; height: 6px; } .settings-pane::-webkit-scrollbar-track { background: transparent; margin: 8px 0; } .settings-pane::-webkit-scrollbar-thumb { border-radius: 6px; background-color: rgba(155, 155, 155, 0.5); } .settings-pane::-webkit-scrollbar-thumb:hover { background-color: rgba(155, 155, 155, 0.7); } /* Responsive Design */ @media (max-width: 768px) { .modal-inner.settings-modal .field-control { width: 100%; } .modal-inner.settings-modal .field-description { padding-bottom: var(--spacing-sm); } .modal-inner.settings-modal .field { display: block; align-items: center; padding: 12px 0; } } @media (max-width: 720px) { .modal-inner.settings-modal { width: calc(100vw - 16px); height: calc(100vh - 16px); max-height: calc(100vh - 16px); } .settings-content { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); } .settings-tabs-container { position: sticky; top: 0; z-index: 3; height: auto; max-height: min(42vh, 300px); padding: 7px 8px; overflow: hidden; border-right: 0; border-bottom: 1px solid color-mix(in srgb, var(--color-border) 58%, transparent); } .settings-tabs { flex-direction: column; width: 100%; min-width: 100%; overflow-y: auto; } .settings-tab { width: 100%; min-width: 0; padding: 0 9px; } .settings-section-list { margin-left: 28px; } .settings-pane { padding: 14px 16px 24px; } .settings-update-card { grid-template-columns: auto minmax(0, 1fr); } .settings-update-card-actions { grid-column: 1 / -1; justify-content: flex-start; } }