/* Settings app styles */ .app-settings { display: flex; height: 100%; } .settings-nav { width: 180px; min-width: 160px; background: var(--bg-dock); border-right: 1px solid var(--border-structural); overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 8px 0; } .settings-nav-item { display: flex; align-items: center; gap: 8px; padding: 12px 16px; min-height: var(--tap-min); background: none; border: none; width: 100%; text-align: left; color: var(--text-secondary); font-family: var(--font-ui); font-size: 13px; cursor: pointer; } .settings-nav-item:hover { background: var(--accent-hover); color: var(--text-primary); } .settings-nav-item.active { background: var(--accent-dim); color: var(--accent); } .settings-content { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; padding: 24px; } .settings-section-title { font-family: var(--font-ui); font-size: 18px; font-weight: 500; color: var(--text-primary); margin-bottom: 24px; } .settings-group { margin-bottom: 32px; } .settings-group-title { font-family: var(--font-mono); font-size: 10px; font-weight: 500; color: var(--text-muted); letter-spacing: 1.5px; margin-bottom: 12px; } .settings-row { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 8px 0; border-bottom: 1px solid var(--border-structural); gap: 16px; } .settings-row-label { font-family: var(--font-ui); font-size: 14px; color: var(--text-primary); } .settings-row-desc { font-size: 12px; color: var(--text-secondary); margin-top: 2px; } .settings-input { height: 40px; padding: 0 12px; background: var(--bg-input); border: 1px solid var(--border-structural); border-radius: var(--radius-md); color: var(--text-primary); font-family: var(--font-mono); font-size: 13px; outline: none; min-width: 200px; } .settings-input:focus { border-color: var(--accent); } .settings-select { height: 40px; padding: 0 12px; background: var(--bg-input); border: 1px solid var(--border-structural); border-radius: var(--radius-md); color: var(--text-primary); font-family: var(--font-mono); font-size: 13px; outline: none; min-width: 200px; cursor: pointer; } .settings-toggle { position: relative; width: 51px; height: 31px; background: var(--border-component); border-radius: 16px; border: none; cursor: pointer; transition: background var(--transition-fast); flex-shrink: 0; } .settings-toggle.on { background: var(--status-green); } .settings-toggle::after { content: ''; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%; background: #fff; transition: transform var(--transition-fast); } .settings-toggle.on::after { transform: translateX(20px); } .settings-btn { height: 40px; padding: 0 20px; background: var(--accent); border: none; border-radius: var(--radius-md); color: #fff; font-family: var(--font-ui); font-size: 14px; font-weight: 500; cursor: pointer; } .settings-btn:hover { opacity: 0.9; } .settings-btn.secondary { background: var(--bg-titlebar); border: 1px solid var(--border-structural); color: var(--text-primary); } .settings-actions { display: flex; gap: 8px; margin-top: 24px; } /* ---- Network configuration ---- */ .net-error { color: var(--status-red); font-family: var(--font-mono); font-size: 13px; padding: 8px 0; } .net-error.hidden { display: none; } .net-static-fields { transition: opacity 0.15s ease; } .net-static-fields.hidden { display: none; } /* Network method radio buttons */ .net-method-radios { display: flex; gap: 4px; background: var(--bg-input); border: 1px solid var(--border-structural); border-radius: var(--radius-md); padding: 3px; flex-shrink: 0; } .net-radio-label { display: flex; align-items: center; cursor: pointer; padding: 6px 14px; border-radius: calc(var(--radius-md) - 2px); font-family: var(--font-mono); font-size: 12px; color: var(--text-secondary); transition: all var(--transition-fast); user-select: none; } .net-radio-label input[type="radio"] { display: none; } .net-radio-label:has(input:checked) { background: var(--accent); color: #fff; } .net-radio-label:hover:not(:has(input:checked)) { background: var(--accent-hover); color: var(--text-primary); } /* WiFi fields for wireless interfaces */ .net-wifi-fields { border-top: 1px dashed var(--border-structural); margin-top: 4px; padding-top: 4px; } .wifi-scan-results { max-height: 200px; overflow-y: auto; -webkit-overflow-scrolling: touch; margin: 4px 0; border: 1px solid var(--border-structural); border-radius: var(--radius-md); background: var(--bg-input); } .wifi-scan-results.hidden { display: none; } .wifi-scan-item { display: flex; align-items: center; gap: 12px; padding: 8px 12px; cursor: pointer; border-bottom: 1px solid var(--border-structural); } .wifi-scan-item:last-child { border-bottom: none; } .wifi-scan-item:hover { background: var(--accent-hover); } .wifi-scan-ssid { flex: 1; font-family: var(--font-ui); font-size: 13px; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* WiFi network list */ .wifi-network-list { max-height: 360px; overflow-y: auto; -webkit-overflow-scrolling: touch; margin-top: 12px; } .wifi-network-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border-structural); flex-wrap: wrap; } .wifi-network-info { flex: 1; min-width: 0; } .wifi-ssid { font-family: var(--font-ui); font-size: 14px; color: var(--text-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wifi-detail { font-family: var(--font-mono); font-size: 11px; color: var(--text-secondary); margin-top: 2px; } .wifi-signal { font-size: 16px; letter-spacing: 1px; flex-shrink: 0; } .wifi-connect-btn { flex-shrink: 0; height: 36px !important; padding: 0 14px !important; font-size: 13px !important; } .wifi-password-row { display: flex; gap: 8px; align-items: center; padding: 10px 0; width: 100%; flex-wrap: wrap; } .wifi-pass-input { flex: 1; min-width: 160px; } .wifi-pass-connect, .wifi-pass-cancel { height: 36px !important; padding: 0 14px !important; font-size: 13px !important; } .settings-btn:disabled { opacity: 0.5; cursor: not-allowed; }